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