劉 銳,王 林
(中國測試技術研究院,四川 成都 610021)
隨著數字技術的飛速發展,數字化儀器已經成為觀測技術領域的主流儀器,因而數據采集技術也成為觀測技術中十分重要的技術環節。數據采集技術主要指從傳感器輸出的微弱電信號,經信號調理、模數轉換到存儲、記錄這一過程所涉及的技術。隨著科學技術的進步,特別是以傳感器技術、通信技術和計算機技術為基礎的現代信息技術的發展,數據采集技術的發展也是日新月異。該文所設計的系統僅僅將模擬的電壓量轉換成數字量,不過其應用領域非常廣泛。
隨著網絡與通信技術的飛速發展,嵌入式系統的應用已進入到一個高、低端并行發展的階段,其標志是近年來32位微控制器的發展。ARM是嵌入式系統應用比較廣泛的一種32位微處理器核,具有體積小、功耗低、硬件調試方便等適合現場操作的優點,而且32位機移植操作系統比較方便,有利于系統的后續開發和升級。到目前為止,ARM微處理器及其技術的應用已經深入到國民生產的各個領域。
該系統所選擇的ARM微控制器是PHILIPS公司生產的ARM7系列的LPC2138芯片。它包含一個支持仿真的ARM7TDMI-S CPU、與片內存儲器控制器接口的ARM7局部總線、與中斷控制器接口的AMBA高性能總線(AHB)和連接片內外設功能的VLSI外設總線(VPB、ARM AMBA總線的兼容超集)。
模擬信號從J2處輸入,然后通過LPC2138自帶的ADC進行模數轉換,采集到的數據經過LPC2138處理后通過串行口把數據發送到PC機上。系統參考電壓由Vref引腳提供,參考電源由電阻R2和電位器W2分壓得到,其電壓范圍為0~3V,J0為測量點。系統的系統時鐘電路使用了外部11.0592MHz晶振。微控制器部分電路如圖1所示。
2.1.1 工作原理
A/D轉換器的基本時鐘由VPB時鐘提供。每個轉換器包含一個可編程分頻器,可將時鐘調整至逐步逼近轉換所需的4.5MHz(最大)。完全滿足精度要求的轉換需要11個這樣的時鐘。
2.1.2 功率控制
LPC2138支持兩種節電模式,即空閑模式和掉電模式。在空閑模式下,指令的執行被掛起直到發生復位或中斷為止。外設功能在空閑模式下繼續保持并可產生中斷使處理器恢復運行。空閑模式使處理器、存儲器系統和相關控制器以及內部總線不再消耗功率。在掉電模式下,振蕩器關閉,這樣芯片沒有任何內部時鐘。
2.1.3 實時時鐘
實時時鐘(Real Time Clock,RTC)提供一套計數器在系統上電和關閉操作時對時間進行測量,RTC消耗的功率非常低,這使其適合用于電池供電、CPU不連續工作(空閑模式)的系統。在使用內部時鐘時,必須外加電源。否則,斷電后RTC將會停止工作,開機后需要重新設置時間。
采用ARM公司提出的標準20腳JTAG仿真調試接口,JTAG連接圖如圖2所示。在RTCK引腳接一個4.7kΩ的下拉電阻,使系統復位后LPC2138內部JTAG接口使能,這樣就可以直接進行JTAG仿真調試了。一般來說,當使用JTAG調試時,P0.14腳必須接上拉電阻(P0.14腳為開漏輸出),讓其保持高電平狀態;而使用ISP下載程序時,則要使P0.14腳保持低電平狀態。
LPC2138有兩個復位源,即RESET管腳和看門狗復位,如圖3所示。外部復位一旦有效,復位狀態將一直保持到外部復位撤除,振蕩器開始運行為止。當/MR輸人信號低至0.6V時觸發一個復位脈沖,在/MR端接一個按鍵,按鍵另一端接地,則按鍵按下時,會產生一個低電平脈沖送到復位發生器中,從而產生200ms復位脈沖輸出。當VCC低于域值電平或/MR保持為低時,/RESET輸出低電平。
由于系統是3.3V系統,所以使用了SP3232E進行RS232電平轉換,SP3232E是3V工作電源的RS232轉換芯,如圖4所示。
當要使用ISP功能時,將PC口(如COM1)與開發板的CZ2相連,使用UART0進行通信。同時還要把J1短接,使ISP的硬件條件得到滿足。在系統復位時若P0.14口為低電平,則進入ISP狀態。
微控制器的內核和I/O口使用同一電源電壓,只需單電源3.3V供電。如圖5所示,由USB CZ1接口輸入5V直流電源,二極管D2用于限制電源的導通方向,經過C1、C9濾波,然后通過SPX1117M-3.3將電源穩壓至3.3V。LPC2138具有獨立的模擬電源引腳V3A、VSSA,圖5中的L1和L2就是用于電源隔離的元件(將數字電源的高頻噪聲隔離)。
系統的軟件設計采用的是模塊化設計方法,主函數包括系統的初始化、A/D轉換設置。串口初始化以及數據傳輸則是通過調用子程序的方式來完成。
主程序代碼結構如下:
3.1.1 ADC模塊設置
首先將測量通道引腳設置為AIN3功能,然后通過ADCR寄存器設置ADC的工作模式,ADC轉換通道,轉換時鐘(CLKDIV時鐘分頻值),并啟動ADC轉換。源程序如下:
3.1.2 向串口發送數據
該模塊的作用是使用查詢方式向串口發送字節數據,并等待數據發送完畢,其中Data是要發送的數據。工作流程中,首先向UART0發送字節數據,接著向發送寄存器寫入數據并判斷是否發送完成,若沒有發送完成則返回繼續發送,直到發送完畢為止,程序流程圖如圖6所示。
3.1.3 從串口接收字節數據
該模塊的作用是使用查詢方式,從串口接收字節數據。工作流程中,首先從UART0接收字節數據,判斷是否有數據進來。若有新數據則從接收寄存器讀取數據,直到接收字節數據完成;若沒有新數據,則返回繼續判斷,程序流程圖如圖7所示。
首先設置I/O連接到UART0,P0.30連接到AD0.3,然后初始化UART0,即設置數據位、停止位、有無奇偶校驗、波特率;接著進行AD轉換設置并啟動ADC,從AD0.3讀取轉換結果并把結果轉換成電壓值發送到UART0,并由PC機顯示結果。綜合程序流程圖如圖8所示。
圖6 向串口發送字節數據流程圖
圖7 從串口接收字節數據流程圖
圖8 綜合程序流程圖
在設計中,主要是針對ARM數據采集系統進行研究與設計。系統以32位ARM7TDMI-S處理器LPC2138為核心,以其自帶的ADC作為模數轉換器件,提高了轉換效率以及系統的實用性,克服了傳統數據采集系統受環境制約的因素,不過在轉換精度方面還有待提高。
設計系統相對比較簡單,LPC2138的很多功能沒有體現出來,在此基礎上還可以增加其他的擴展功能。例如,采集數據可以改為多通道循環采集,并且可以外接一個液晶顯示屏,這樣的話測得的電壓值不但能通過PC機顯示,而且在液晶屏上也能顯示。數據的傳輸不僅可以依靠串口,而且可以利用USB進行數據的傳輸。而此次設計的系統僅利用了USB的供電功能,還可以外接CAN控制器,實現CAN的一系列功能。
[1]周立功.深入淺出ARM7-LPC213x/214x(上)[M].廣州:廣州周立功單片機發展有限公司,2005.
[2]周立功.ARM嵌入式系統基礎教程[M].北京:北京航空航天大學出版社,2005.
[3]劉天時,強新建,王 瑞,等.ARM7嵌入式開發基礎實驗[M].北京:北京航空航天大學出版社,2007.
[4]付海艷,韓 山,郭 云.ARM微處理器應用開發技術詳解與實例分析[M].北京:清華大學出版社,2007.
[5]范圣一.ARM原理與嵌入式系統實戰[M].北京:機械工業出版社,2007.
[6]周春來.ARM開發工具ADS原理與應用[M].北京:北京航空航天大學出版社,2006.
[7]丁 峰,魯 立.ARM系統開發從時間到提高[M].北京:中國電力出版社,2007.
[8]周立功.ARM嵌入式系統軟件開發實例(二)[M].北京:北京航空航天大學出版社,2006.
[9]李 佳.ARM系列處理器應用技術完全手冊 [M].北京:人民郵電出版社,2006.
[10]三恒星科技.ARM7易學通[M].北京:人民郵電出版社,2006.
[11]馬文華.嵌入式系統設計與開發[M].北京:科學出版社,2006.
[12]周立功.ARM嵌入式系統實驗教程(三)——擴展實驗[M].北京:北京航空航天大學出版社,2005.