新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 由AT91M55800A構成的簡易數據采集方案

        由AT91M55800A構成的簡易數據采集方案

        作者: 時間:2012-04-17 來源:網絡 收藏

        該芯片中含有兩個完全相同的4通道10位A/D轉換器,可組成一個8通道10位A/D轉換器。每個A/D轉換器具有 4個模擬輸入引腳和數字觸發輸入引腳,并提供一個AIC的中斷信號。兩個A/D轉換器共享模擬電源引腳和參考電壓輸入引腳。每一個通道可被單獨地使能或禁止,并具有自己的數據寄存器。A/D轉換器可以配置為在轉換序列后自動進入睡眠 模式,并可由軟件、T/D或外部信號來觸發。

        由于內部不帶片內程序存儲器,需要對外擴[1] Flash存儲器作為程序存儲器用于存放程序代碼、常量表及掉電后需要保存的數據。的總線讀寫周期最長可以有8個周期的延時,要求 Flash存儲器的最低讀速度不低于該速度。考慮到的執行速度和程序大小,選用訪問速度為70 ns的HY29LV160(芯片容量是1 M×16 bit共2 MB),基本上能夠滿足要求。

        該系統中接入AD590[2]作為溫度傳感器,該器件以電流作為輸出量來指示溫度,并且將得到的信號經過放大器的緩沖隔離得到一個與溫度成正比的電壓,從而實現對溫度的測量。

        3 A/D轉換編程

        中,兩個A/D轉換器獨立工作,每個A/D轉換器只能讀取一個通道的A/D轉換器值。此程序讓用戶指定哪一個通道工作,然后讀取指定通道的值,并顯示出來。由于A/D轉換器的精度有10位和8位,這里設置為10位,因此獲得的數據范圍在0~3FF之間。

        A/D轉換器的工作過程不同于一般的外圍設備。初始化后,必須有一個觸發命令高速A/D轉換器進行采集,此時A/D轉換器對其激活的某一個通道上的模擬信號進行采樣、保持,然后轉換成數據,存儲在數據寄存器中。用戶可以從狀態寄存器中了解到A/D轉換器是否已經轉換完成,然后通過讀取數據寄存器得到A/D 轉換后的數值。

        A/D轉換程序流程圖見圖3。

        42.jpg

        對A/D轉換器進行編程,使用AT91庫(在/pe-riph/adc目錄下),與A/D轉換器相關的代碼部分[3]如下:

        a)adc.h:A/D轉換器用戶接口結構定義StructADC、控制寄存器ADC-CR、模式寄存器ADC-MR和其他一些重要寄存器的各個重要位的定義、A/D轉換器中斷服務程序函數定義。

        b)Lid_adc.h:A/D轉換器描述符定義、庫函數的定義。

        e)Lid_adc.c:庫函數的詳細代碼。包括:初始化ADC at91_adc_open、關閉ADC at91_adc_close、獲得狀態寄存器的值at91_adc_get_status、設置控制寄存器的值at91_adc_trig_cmd、讀取A/D轉換的值at91_adc_read、打開指定的A/D轉換通道at91_adc_channel_open、關閉指定的A/D轉換通道 at91_adc_channel_close、獲取通道開和關的狀態at91_adc_channel_geI_status等。

        4 結束語

        本文介紹了一個基于ARM7的方案。該方案通過硬件的具體設計和軟件編程實現了預期的目標。利用ARM進行可以使方案更穩定,而且可以達到功耗小、性能高的效果,適合在多種工業場合中應用。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 瓦房店市| 武汉市| 中阳县| 穆棱市| 昌黎县| 临沭县| 千阳县| 万盛区| 油尖旺区| 吉木乃县| 金秀| 万州区| 和顺县| 伊吾县| 邯郸市| 怀化市| 台安县| 申扎县| 盘山县| 安塞县| 赤峰市| 马关县| 临汾市| 安阳市| 扶风县| 伊吾县| 岱山县| 洛宁县| 榆中县| 白玉县| 新和县| 当雄县| 阿图什市| 昔阳县| 泊头市| 达尔| 贵州省| 连江县| 新巴尔虎左旗| 新竹市| 宜州市|