基于A(yíng)RM7的軌道檢測儀的嵌入式系統設計
摘要:描述了一種以軌道檢測儀的為應用目標的ARM7嵌入式系統的設計過(guò)程。以ARM7TDMI核的嵌入式處理器S3C44B0為中心,采用了CH375、MAX197等高性能外圍電路構建了系統的硬件平臺,運用ARM特有的中斷處理機制實(shí)現了數據采集、數據處理和人機互交對軟件的實(shí)時(shí)性要求,該設計已成功的用于軌道檢測儀樣機。
本文引用地址:http://dyxdggzs.com/article/82242.htm關(guān)鍵詞:ARM7;S3C44B0;快速中斷;軌道檢測儀
1 引言
對鐵路軌道進(jìn)行靜態(tài)幾何參數的檢測是鐵路部門(mén)的一項常規工作,使用便攜式軌道檢測儀能大幅降低檢測人員的工作量。這種智能測量技術(shù)不僅可以提高測量的精度和可信度,還能提供現場(chǎng)的和后續的軌道數據分析,極大的提高了軌道檢測工作的質(zhì)量和效率。便攜式軌道測試儀對嵌入式計算機系統的功能和性能提出了許多新的需求:高實(shí)時(shí)性、高運算性能、高集成度、低功耗、低成本。傳統單片機系統雖然能完成一般的控制任務(wù),但其運算能力太低,不足以滿(mǎn)足現場(chǎng)數據處理的要求,由基于SoC思想設計的ARM系列微處理器構成的嵌入式系統便能良好的滿(mǎn)足上述要求。ARM核以高性能低功耗著(zhù)稱(chēng),再配以IC制造廠(chǎng)商提供的大量片上外設,使得ARM系列處理器擁有非常優(yōu)良的嵌入式應用性能。本設計中采用了三星公司制造的ARM7TDMI核處理器S3C44B0完成控制和運算工作,12位高性能AD轉換器MAX197完成傳感器信號的轉換,USB主控制器CH375完成數據到U盤(pán)的轉存,系統也包含了液晶屏、鍵盤(pán)、微型打印機等其他必要的外設。
2 系統設計要求
2.1 測量原理
軌道檢測儀的測量原理如圖1所示,傳感器由一個(gè)裝有滾輪的機械支架固定,操作人員在軌道上推行該檢測儀。位移傳感器測量軌道AB之間的間距d,傾角傳感器測量軌道平面與水平面的傾角θ,光電編碼器被連接到一個(gè)滾輪上用于記錄當前的里程L。軌道檢測儀可以設置采樣間隔,范圍0.5m-1m。當里程達到采樣間隔時(shí),將當前里程L、軌距d、超高h和三角坑t作為一條記錄保存起來(lái)。
機械支架在推行過(guò)程中會(huì )產(chǎn)生頻率較軌道傾角變化頻率高很多的振動(dòng),因此需要對傾角信號進(jìn)行濾波處理才能減小測量誤差。
圖1軌道測量原理圖 Fig. 1 Principle of track measure
2.2 性能需求
軌道檢測儀的工作流程如下:使用AD轉換器以33Hz的采樣頻率對位移和傾角傳感器的信號進(jìn)行采樣,然后對前80個(gè)傾角采樣值進(jìn)行一次濾波運算,當里程每增加5cm時(shí),將當前的軌距和超高保存至隊列,當里程達到采樣間隔時(shí),則根據隊列里的數據算出三角坑,然后與軌距和超高作為最終數據一并保存起來(lái)。因此系統需要一個(gè)定時(shí)器,并且能在30ms內完成一次濾波運算。位移傳感器量程為5cm,轉換關(guān)系為1V/1cm,傾角傳感器量程為±10º,轉換關(guān)系為1V/1º,軌距、超高和三角坑的顯示分辨率要求達到0.1mm。因此AD轉換器需要擁有12位的精度。此外還需要實(shí)現U盤(pán)存儲、現場(chǎng)打印、時(shí)鐘、液晶顯示、鍵盤(pán)輸入等功能。
3 硬件設計
3.1 硬件整體設計
ARM7系列的處理器的型號較多,設計使用了較為常見(jiàn)的三星公司生產(chǎn)的S3C44B0,它包含了一個(gè)運算能力強大的ARM7TDMI核和大量實(shí)用的外設[1]。根據應用的實(shí)際需要,為S3C44B0配置了1M×16Bit的Nor Flash SST39VF1601和4Banks×1M×16Bit的SDRAM HY57V641620。
MAX197是一款單電源,多通道,多量程的1/2LSB精度12位的AD轉換器,采樣速率可達100ksps,完全滿(mǎn)足33Hz的采樣速率的要求。它雖為單5V供電,但具有±10 V、±5 V、10 V和5 V四個(gè)量程,同時(shí)集成了時(shí)鐘發(fā)生器和基準電路,數據接口也可與通用控制器直接連接。MAX197以簡(jiǎn)潔的電路提供了相當高的性能,是嵌入式應用的理想選擇[2]。
CH375是一個(gè)USB總線(xiàn)的通用接口芯片,支持主從兩種方式,主機方式支持常用的USB全速設備。它內置了處理Mass-Storage海量存儲設備的專(zhuān)用通訊協(xié)議的固件,外部控制器可以直接以扇區為基本單位讀寫(xiě)常用的USB存儲設備[3],提供了一個(gè)實(shí)用的嵌入式設備的U盤(pán)存儲方案。
圖2硬件結構框圖 Fig. 2 Picture of hardware structure
系統的框圖如圖2所示。其中S3C44B0的IO引腳由3.3V的LVCMOS驅動(dòng),最高輸入電壓為4.6V[1],因此總線(xiàn)在掛接MAX197和液晶屏等5V邏輯電平的外設時(shí)應該加上總線(xiàn)收發(fā)器以做隔離,此外部分用于輸入GPIO引腳也需要加上緩沖器。
3.2 高效率電源管理
電源管理是電池供的電便攜式設備的關(guān)鍵部分,使用低功耗器件和提高電源管理效率是延長(cháng)系統連續工作時(shí)間的兩個(gè)重要手段。設計中根據用電器的特征和成本上的考慮做出如圖3所示的供電方案。
圖3系統電源方案 Fig. 3 Scheme of power supply
DC-DC電源的效率雖高,但紋波系數較大,不適合模擬電路的供電;線(xiàn)性穩壓器雖然穩壓效果好,但是效率低,且只能降壓。AD轉換器工作電流很小且對電源穩定性要求高,故直接使用線(xiàn)性穩壓器給其供電,而數字部分都采用DC-DC電源,對于處理器所需的多電壓,也采用線(xiàn)性穩壓器,由此帶來(lái)的功率損耗還可接受。傳感器所需的正負電壓需要通過(guò)DC-DC的升壓和反轉才能得到,為了消除其紋波的影響同時(shí)使用了線(xiàn)性穩壓器。對于功率較大的液晶屏背光和打印機則使用單獨的DC-DC,并由處理器控制。同時(shí)DC-DC對負載大幅度波動(dòng)的適應不是很好,打印機的機頭產(chǎn)生的功耗是間歇性的,瞬時(shí)功率很高,因此DC-DC需要有足夠的功率裕度。
此電源方案在實(shí)踐中取得了良好的效果,系統在關(guān)閉背光和打印機的情況下,12V蓄電池的輸出電流小于120mA。
4軟件設計
4.1 實(shí)時(shí)數據采集
由于數據采集對實(shí)時(shí)性的要求很高,所以軟件的設計沒(méi)有采用操作系統,而是由多個(gè)中斷服務(wù)程序和主程序組成。設計一共用到4個(gè)外部中斷和3個(gè)內部中斷,分別來(lái)自光電編碼器正反向轉動(dòng)、MAX197、CH375、RTC和兩個(gè)定時(shí)器。其中比較重要的兩個(gè)中斷分別來(lái)自光電編碼器和產(chǎn)生采樣頻率的定時(shí)器,前者的特點(diǎn)是頻率較高,可達1KHz,且不能丟失,后者的特點(diǎn)是中斷服務(wù)程序的運行時(shí)間長(cháng),需要完成濾波運算,因此要求中斷是可嵌套的。ARM處理器在硬件上不直接支持中斷服務(wù)程序的嵌套運行[4],雖然可以通過(guò)軟件的方式實(shí)現,但會(huì )增加額外的運行開(kāi)銷(xiāo)。巧妙的利用ARM的特有的中斷機制就可以解決上述問(wèn)題,ARM提供FIQ和IRQ兩類(lèi)中斷,FIQ中斷到來(lái)時(shí)處理器將運行狀態(tài)轉到FIQ模式下,該模式下?lián)碛袑?zhuān)用的寄存器以減少壓棧帶來(lái)的時(shí)間的損耗,IRQ類(lèi)似,但專(zhuān)用寄存器沒(méi)有FIQ多。因此,當處理器在IRQ模式下運行中斷服務(wù)程序時(shí),是可以立即響應FIQ中斷的。將光電編碼器產(chǎn)生的中斷作為FIQ類(lèi)型,其他中斷作為IRQ類(lèi)型就可以使每個(gè)中斷得到及時(shí)的響應[5]。
S3C44B0的中斷控制器是可以將某個(gè)中斷設定為FIQ或IRQ類(lèi)型送至ARM核的。ARM核只有FIQ和IRQ這兩個(gè)中斷信號線(xiàn),因此處理器需要中斷控制器的協(xié)作才能確定某個(gè)中斷來(lái)自哪個(gè)中斷源,S3C44B0提供了兩種解決方式:VECTORED INTERRUPT MODE和NON-VECTORED INTERRUPT MODE。VECTORED INTERRUPT MODE可以像CISC處理器那樣不同的中斷執行不同的中斷處理程序,其實(shí)現原理是當中斷到來(lái)時(shí)由硬件邏輯根據具體中斷源產(chǎn)生一個(gè)與之相應的跳轉指令放到總線(xiàn)上,ARM核取得該條指令后便立即跳轉到相應的處理程序[1]。這樣可以提高中斷響應速度和簡(jiǎn)化程序設計,但是這種模式只支持IRQ類(lèi)型的中斷;NON-VECTORED INTERRUPT MODE則像其他ARM處理器一樣,由中斷服務(wù)程序去訪(fǎng)問(wèn)中斷控制器的I_ISPR寄存器來(lái)確定中斷源。
設計中將光電編碼器的中斷類(lèi)型設為FIQ類(lèi)型,并使用NON-VECTORED方式,其他中斷設為IRQ類(lèi)型,使用VECTORED方式。中斷向量表由兩部分組成,前部分為ARM核的異常跳轉指令,后部分供S3C44B0的VECTORED中斷方式使用。中斷服務(wù)程序可由匯編或者C語(yǔ)言編寫(xiě),對于FIQ和IRQ類(lèi)型的C語(yǔ)言函數需要加上__irq宏,編譯器才能生成正確的返回指令。
4.2 軟件的整體設計
由于沒(méi)有操作系統,啟動(dòng)代碼和應用程序是融為一體的,啟動(dòng)代碼由匯編語(yǔ)言編寫(xiě),除前面的中斷向量表以外,還負責硬件初始化,將自己從ROM拷貝到SDRAM,初始化各個(gè)模式下的堆棧等,完成了上述工作之后程序才能跳入由C語(yǔ)言編寫(xiě)的函數之中去。
數據采集之外的工作對實(shí)時(shí)性要求很低,除了鍵盤(pán)掃描和RTC使用低優(yōu)先級的中斷之外,其他部分都包含在主程序循環(huán)里。特別需要注意的是,由于中斷向量表存放在Flash中,在向Flash寫(xiě)數據的時(shí)候必須關(guān)閉所有中斷,所以需要保存的數據應先放到SDRAM中去,待一次測量完成之后再寫(xiě)至Flash。
USB控制器CH375的制造商提供了U盤(pán)讀寫(xiě)的庫文件,只需要外部定義讀寫(xiě)CH375硬件的函數和將中斷服務(wù)程序配置到相應的中斷,就可以實(shí)現對U盤(pán)FAT文件系統的操作。
4.3 編譯與調試
設計采用的軟件開(kāi)發(fā)環(huán)境是ARM公司的ADS1.2,編譯C語(yǔ)言程序時(shí)可能會(huì )產(chǎn)生用于Semihost通信的代碼,其中包含軟中斷SWI指令,但設計中并未包含SWI異常處理的程序,編譯器也沒(méi)有相應的編譯選項去掉Semihost功能,一旦遇到SWI指令便會(huì )進(jìn)入軟中斷異常。因此可以反匯編機器碼,找到對應的函數將其重定義即可。
5 結束語(yǔ)
嵌入式系統的特點(diǎn)就在于其應用的針對性很強,設計充分的利用了ARM7處理器的性能和資源,根據特定應用目標構建整個(gè)軟硬件平臺,實(shí)現了高性能、低功耗的目標。該系統已成功的用于軌道檢測儀樣機,對其他基于A(yíng)RM處理器的嵌入式系統的開(kāi)發(fā)設計具有很好的參考意義。
本文作者創(chuàng )新點(diǎn):傳統的測試儀器多以單片機為核心,但是單片機速度較慢,資源較少,在許多應用環(huán)境中必須對其進(jìn)行擴展,因此不利于降低系統功耗和提高集成度。將ARM7處理器應用到軌道檢測儀的設計是新的信息處理技術(shù)與傳統應用的一次創(chuàng )新結合,ARM7嵌入式平臺在提升系統性能和集成度的同時(shí)也改變了以往的系統設計方法,尤其是ARM處理器特有的中斷機制可以使實(shí)時(shí)數據的采集和處理實(shí)現起來(lái)更加方便和可靠。此外,高效率的供電系統也是本文的亮點(diǎn)。
參考文獻
[1] S3C44B0X Datasheet [Z]. Samsung. Co. Ltd. , 2003.
[2] 張俊濤,王長(cháng)安. 12bA/D轉換器MAX197及其應用[J]. 現代電子技術(shù) , 2004,(19) .
[3] 李新龍, 翟宏范, 狄國偉, 王鑫. USB芯片CH375在電能測量?jì)x系統中的應用[J]. 微計算機信息 , 2006,(26).
[4] 杜春雷. ARM體系結構與編程 [M]. 北京: 清華大學(xué)出版社, 2003.
[5] 季振華. 基于A(yíng)RM7TDMI內核的S3C44B0異常處理分析[J]. 微計算機信息 , 2006,(05).
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論