新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 微功耗數據采集系統的開發應用

        微功耗數據采集系統的開發應用

        作者: 時間:2009-12-16 來源:網絡 收藏

        3 軟件設計
        的讀寫是以扇區(sector)為單位的,每次讀寫一個或連續的多個扇區,每個扇區大小為512字節。對的讀寫訪問操作都是通過訪問其內部寄存器來實現的,對不同的寄存器進行訪問是靠上節所提到的A0~A2、CSO、CSl這五根數據線來譯碼的,在本文的設計中,配置成TRUE IDE工作模式,具體的寄存器映射如表1所示。

        本文引用地址:http://www.104case.com/article/173516.htm

        寄存器0用于CF卡的數據讀寫。CF為了節省I/O資源,有些I/0端口是復用的,寄存器1在讀操作時為錯誤寄存器,寫操作時為特征寄存器。寄存器2的作用是設定要讀寫扇區的數目。寄存器3~6是用來尋址要讀寫的具體扇區位置,一般的IDE硬盤有CHS和LBA兩種尋址模式,CF卡工作在TRUE IDE模式下也有這兩種尋址模式,CHS(Cylinder/Head/Sector)是扇區對應的具體柱面、磁頭、和扇區的地址;邏輯塊尋址方式LBA(Logical Block Addressing)在邏輯上是連續的,比較方便,所以軟件實現上采用這種方式對CF卡的扇區進行訪問。寄存器7在讀操作時是狀態寄存器,主控器可以得到CF卡的有關狀態信息;寫操作時是命令寄存器,通過設置命令,主控制器操作CF卡完成特定的功能。
        讀寫扇區時,首先需要設置起始扇區的LBA地址和扇區數目,并設置命令寄存器,讀取數據設置命令“20H”,寫入數據設置命令“30H”。然后讀取狀態寄存器,判斷狀態寄存器是否為“58H”。若為是,則開始讀寫操作;若為否則繼續讀取狀態寄存器。接下來讀狀態寄存器是否為“50H”,判斷CF卡操作是否完成。若為否,則繼續讀取判斷;若為是,則結束讀寫過程。如果在判斷狀態寄存器中發生了超時或出現錯誤,則設置超時或錯誤標志,并跳出讀寫過程。圖4為CF卡讀寫一個扇區的流程圖。

        由于對CF卡的操作是以扇區位單位,在內部RAM開辟了兩個大小為1 kByte的緩沖區,每個緩沖區的數據正好可以寫滿CF卡的兩個扇區,AD采集的數據先存儲在緩沖區,當存滿一個緩沖區后,設置CF的LBA地址、扇區數目及寫命令,把緩沖區內的數據寫入CF卡,同時AD采集的數據存儲在另外一個緩沖區。
        CF卡如果要通過讀卡器在計算機上直接讀取數據,CF卡中的文件必須與計算機的文件一致,現在計算機的文件有FATl6、FAT32及NTFS等。由于微處理能力有限,在采樣周期內完成及數據存儲的工作后,所剩時間已經不多,如果再加上處理文件系統的程序,勢必影響系統的實時性。在本設計的程序里并沒有將數據寫成文件系統,而是從數據扇區對應的LBA地址開始從小到大依次將數據寫入扇區,直到寫滿整個CF卡。在讀取數據時,利用磁盤操作函數編寫一個小的VC程序,將CF卡中數據依次讀出并存為文件存儲在計算機的硬盤里,讀取的扇區及文件的大小也可以方便地設置,非常靈活。這樣也就在處理器能力有限的情況下實現了系統的實時和存儲。


        4 結論
        采取這種設計方法使整個采集系統的大大減小,經測量,整個系統為150mW。采用高能鋰離子電池作為系統電源,使整個系統輕松裝入一個內徑為15cm,高15cm的圓柱形密封罐內,體積的減小也更加有利于系統在水下的布放。該系統經過在吉林松花湖試驗,能夠穩定可靠地工作,實時采集并存儲水下環境的噪聲和過往船只的噪聲數據。

        電機保護器相關文章:電機保護器原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 板桥市| 介休市| 白玉县| 海口市| 措美县| 定安县| 福海县| 温州市| 花莲县| 平原县| 木兰县| 增城市| 广州市| 曲沃县| 商都县| 大兴区| 托克托县| 阿荣旗| 商城县| 凤阳县| 友谊县| 乌拉特前旗| 邯郸县| 曲麻莱县| 丽江市| 崇明县| 右玉县| 龙门县| 肃宁县| 普定县| 穆棱市| 孝昌县| 定州市| 嘉兴市| 淅川县| 陆丰市| 定结县| 略阳县| 峨山| 灌南县| 固镇县|