新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于ARM的簡易數據采集方案

        基于ARM的簡易數據采集方案

        作者: 時間:2013-05-26 來源:網絡 收藏
        0 引 言

          在計算機測量、控制及信號處理中,數據采集發揮著至關重要的作用。數據采集是獲取數據的重要手段,它是從傳感器或其他待測設備等模擬或數字被測單元中自動采集信息的過程。而采用內部的A/D轉換資源,具有轉換速度較高、工作可靠、設計的復雜度較低等優點。同時, 還具有體積小、運算速度高,A/D轉換分辨率較高的特性,使得到了廣泛的應用。本文利用ATMEL公司ARM7系列中的 AT91M55800A設計了一個簡易的數據。該方案具有結構簡單、開發容易,可靠性強、價格低廉等特點,有一定的實用價值。

          1 數據的結構和功能

          方案結構如圖1所示。

          該方案是由接收、A/D轉換和處理、輸出3部分組成。本方案以AT91M55800A為核心,該芯片是一個高性能的32位處理芯片,內部有一個8選1的模擬通道,一個10位的A/D轉換通道。預處理電路將傳感器拾取的信號進行隔離放大和濾波至A/D轉換所需0~3 V,處理過的模擬信號通過AT91M55800A中的A/D轉換通道變成數字信號,并根據要求進行相應的處理,最后由液晶顯示器輸出。同時,本方案使用 Flash存儲器作為程序存儲器用于保存數據。

          基于ARM的簡易數據采集方案

          2 硬件組成

          AT91M55800A是ATMEL公司基于ARM7TDMI核的AT91的 16/32位微控制器家族成員。它通過完全可編程的外部總線接口直接連到片外存儲器,使讀或寫操作最快可以達到一個時鐘周期,通過將帶有片內SRAM的 ARM7TDMI處理器核、多種外圍功能模塊、模擬接口和低功耗振蕩器集成于單一硅片。AT91M55800A為低功耗應用提供了一個高度靈活和高性價比的解決方案。其主要特點如下:

          a)集成了ARM7TDMI ARM Thumb處理器核,高性能的32位RISC體系結構,高代碼密度的16位指令集,嵌入式ICE;

          b)8 kB片內SRAM,32位數據總線寬度,單時鐘周期訪問,方案可最大擴展64 MB存儲器,軟件可編程的8位或16位外部數據總線;

          c)主/從式SPI接口,8位~16位可編程數據長度,4個外部從芯片選擇;

          d)可編程的看門狗電路,提高方案的安全可靠性;

          e)58個可編程I/O口線,擴展了輸入輸出口線;

          f)先進電源管理控制器,具有正常、等待、慢速、待機和掉電方式;

          g)8優先級、可單獨屏蔽的向量中斷控制器,6通道16位定時器/計數器,3個USART,每個USART有2個專用的PDC通道;

          h)8通道10位A/D轉換器,2通道10位D/A轉換器;

          i) 采用片內主振蕩器和PLL倍頻的時鐘產生器,采用片內32 kHz振蕩器的實時時鐘。

          圖2為方案的實際應用電路。

          基于ARM的簡易數據采集方案

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

          模式,并可由軟件、T/D或外部信號來觸發。

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

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

          3 A/D轉換編程

          在AT91M55800A中,兩個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。

          基于ARM的簡易數據采集方案

          對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進行數據采集可以使方案更穩定,而且可以達到功耗小、性能高的效果,適合在多種工業場合中應用。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 德阳市| 巴塘县| 志丹县| 潼南县| 南郑县| 隆化县| 珠海市| 黔东| 新干县| 恩施市| 吉安市| 开平市| 武城县| 沁阳市| 阜城县| 忻州市| 同德县| 陇西县| 京山县| 永安市| 崇礼县| 西充县| 太仓市| 田东县| 大城县| 东源县| 化隆| 象山县| 兴文县| 永吉县| 永春县| 福鼎市| 光泽县| 神农架林区| 徐汇区| 高州市| 远安县| 沈丘县| 当涂县| 枣强县| 万山特区|