基于ARM處理器的 PC/1 04處理器模塊的開發(fā)
摘要 PC/104是一種專門為嵌入式應(yīng)用而定義的總線 。本文介紹的是一種基LPC2129 ARM處理器的PC/104模塊 ,介紹了利用ARM處理器開發(fā)PC/104處理模塊的基本結(jié)構(gòu)、總線技術(shù)、串行通信接口以及驅(qū)動程序 ,為ARM處理器在PC/104領(lǐng)域的應(yīng)用提供了一種新 的思路。
PC/104是一種專門為嵌入式應(yīng)用而定義的總線 ,lEEE會將它定義IEEE—P996 1,信號定義和PC/AT基本一致 ,但氣和機械規(guī)范卻完全不同,是一種優(yōu)化的、小型 、堆棧式結(jié)構(gòu)嵌入式系統(tǒng) ?;赑C/104結(jié)構(gòu)的模塊由于開發(fā)方便 、品種富、結(jié)構(gòu)簡單等優(yōu)勢在工業(yè)控制領(lǐng)域有著廣泛的應(yīng)用。
ARM(Advanced RISC Machine)公司成立于 1990年月,是蘋果電腦 ,Acorn電腦集團和 VLSI Technology的合資業(yè) 。ARM首創(chuàng)了CHlPLESS的模式 ,該公司只設(shè)計出高效ARM內(nèi)核,通過將 ARM內(nèi)核授權(quán)給半導(dǎo)體公司 ,由半導(dǎo)體公根據(jù)實際的應(yīng)用情況加上各種外圍的功能比如Flash、串RTC等構(gòu)成一塊完整的芯片。
本文主要介紹基于ARM的 PC/104模塊的結(jié)構(gòu) ,并給出總線模擬 、串行通訊接口以及驅(qū)動程序的相關(guān)內(nèi)容。
1 PC/104處理器模塊的要求
在工業(yè)控制和數(shù)據(jù)采集中 ,PC/104模塊的總線 、串口功是必不可少的,而硬盤接口、并行口、鍵盤口等 lO 口卻很少用 ,因此在選用另外的CPU代替x86作為PC/104模塊的處器首先要求能夠兼容原有的 PC/104總線 ,使得符合PC/規(guī)范的數(shù)字量輸入/輸出模塊 、模擬量輸入/輸出模塊以及針PC/104系統(tǒng)開發(fā)的各個系統(tǒng)能夠正常使用 ;其次該處理器須具有 2個串行接 口,以適應(yīng)大部分場合的串行通訊需要三 ,必須具有可以滿足足夠的程序空間和RAM空間為用戶的序和數(shù)據(jù)使用;第四,必須具有 RTC(Real Time Clock),并能斷 電時保持系統(tǒng)時間不變;第五 ,友好的開發(fā)環(huán)境 ,以適應(yīng)現(xiàn)系統(tǒng)開發(fā)的需要 。
2 基于 Inte1386SX的 PC/104模塊的缺點
首先 ,基于386SX 的 PC/104處理器模塊的成本比較386SX/40的控制模塊的價格在千元以上 ;第二,功耗較大瓦的功耗給電源供應(yīng)、散熱的設(shè)計帶來一系列的問題,并且不合某些低功耗要求的環(huán)境中應(yīng)用 ;第三 :程序燒寫繁瑣 ,基x86的PC/104的理器模塊一般采用 DOC (Disk On Ch或者 DOM(Disk On Module)作為程序存儲器,由于DOC用燒寫工具比較昂貴 ,所以實際生產(chǎn)時多采用人工燒錄方法括格式化、復(fù)制多個步驟 ,每燒一塊芯片需要斷電 、重新啟動器數(shù)次 ,效率低下 、操作繁瑣 ;第四,系統(tǒng)啟動速度慢 ,從上電開始執(zhí)行用戶程序一般需要 2—5秒時間,WDT溢出時恢復(fù)時間較長,容易遺漏一些重要的事件。第五 ,開發(fā)環(huán)境不夠友好,基于386SX 的 PC/104處理器模塊的程序一般在 DOS環(huán)境下開發(fā),開發(fā)工具一般為TURBO C或者BORLAND C,開發(fā)環(huán)境比較落后,編程 、調(diào)試非常的不方便。
3 ARM處理器的特點
首先速度快 ,ARM是一種基于 RISC架構(gòu)的處理器 ,運行在44MHz的ARM的處理器的處理能力可大40MlPS,遠大于基于CISC架構(gòu) 386SX/40的13MIPS;其次 ,功耗非常低 ,例 LPC2129的內(nèi)核耗電僅為 30mA (供 電電壓為 1.8V,時鐘 為 60MHz),功耗為 54mW,不到 386SX的十分之一 ;第三,集成度高、功能強大 ,很多世界著名的半導(dǎo)體廠家都購買 了 ARM的內(nèi) 核,并根據(jù)市場的需要推出了集成豐富外圍功能包括 SRAM、 RTC,CAN接口、串行口、以太網(wǎng)接口等等的芯片 ,在很多應(yīng)用場合,一塊ARM芯片可以滿足所有的需要;第四,價格低廉,ARM芯片生產(chǎn)廠家很多,在工業(yè)控制和民用產(chǎn)品中的應(yīng)用也非常廣泛 ,芯片價格非常低廉 ,帶128KFLASH的PHILIPS LPC2104的市場價格僅為50元人民幣。
4 CPU的選擇
經(jīng)過80186、X51、ARM、DSP等多種CPU 比較后最終確定采用ARM作為 PC104處理器模塊的替代處理器 ,為了兼容原 有的基于 PC/104設(shè)計的板卡。經(jīng)過多家 ARM產(chǎn)品的比較,最 終確定采用 PHILIPS LPC2129作為本次開發(fā)的 PC/104處理 器模塊 的 CPU。LPC2129是基于一個支持實時仿真和跟蹤的 16/32位 ARM7TDMl—S CPU,并 內(nèi)置 256K字節(jié)(KB)的高速 Flash存儲器。128位寬度的存儲器接 口和獨特的加速結(jié)構(gòu)使 32位代碼能夠在最大時鐘速率(60MHz)下運行。LPC2129采 用很小的 TQFP一64封裝 、具有極低的功耗 、2個串口、多個 32 位定時器 、4路10位ADC、2路CAN、PWM通道 、46個 GPlO 以及多達 9個外部中斷使它特別適用于工業(yè)控制領(lǐng)域CPU模塊的開 發(fā) 。
5 系統(tǒng)結(jié)構(gòu)
基于ARM的PC/104系統(tǒng)主要由處理器 、總線接口 、 Flash、實時時鐘 、復(fù)位電路 、通訊接口、調(diào)試接口、電源幾個部分組成 ,如圖 1所示。
6 硬件設(shè)計
6 1總線部分
本模塊開發(fā)的關(guān)鍵之一是 PC/104總線的接口,包括控制總線 、地址總線和數(shù)據(jù)總線 ,采用專用的 3 3V/5V電平轉(zhuǎn)換芯片74LVC4245以保證不同電平電路的高速互連 ,74LVC4245是一塊A3 8位的總線收發(fā)器 ,并可以在5V和3.3V系統(tǒng)之間實現(xiàn)電平的轉(zhuǎn)換 。
地址總線 、數(shù)據(jù)總線 、控制總線可以采用 PHILIPS的LPC2292等帶擴展總線ARM處理器的總線 ,也可以采用 LPC2192 ARM 處理器電平轉(zhuǎn)換收發(fā)器的P0口、P1口的空閑引腳行模擬。在總線模擬時,由于P0口引腳和擴展功能的復(fù)用 ,因地址總線 、數(shù)據(jù)總線很難選用連續(xù)的IO引腳,在編寫總線驅(qū)程序時只能通過CPU的移位指令靈活的處理:
void outportb(unsigned int portAdd ress,unsigned char value)
{
addr=(portAddress<<1O): //將地址 向右移 1O位
a=(value << 21): //利用兩次移位,合成一個 8位數(shù)據(jù)
b=(value<<23).
a=(a& Ox01eO0000); //屏蔽無關(guān)位
b=(b& O×78OOOOOO):
data=(a I b):
}
6_2 串口通訊
串口通訊是工業(yè)控制中的一個非常重要的通訊方式 ,原的x86 PC/104處理器模塊包含兩個帶Modem接口的RS23接口,由于在實際應(yīng)用中很少用到全功能的Modem接口,所在開發(fā)中省略RS232接口中的與 Modem通訊握手相關(guān)的號 ,包括RTS、DCD、CTS、RI、DTR、DSR六個通訊握手的信號只保留 RXD、T×D、GND三個信號 。在接口上仍舊采用雙排針的插座 ,引腳排列也按照 DTE(Digital Terminal Equipmen的標準設(shè)置,以達到和原有的 386S×/40的PC/104處理器塊的充分兼容。
由于省略了 Modem通訊握手的相關(guān)信號 ,使得采用 1TTL/RS232的電平轉(zhuǎn)換芯片 MAX3232實現(xiàn)兩個串口的接口成為可能 ,并在實際的使用中得到了驗證。
6.3 驅(qū)動程序
為了兼容已有的系統(tǒng)減少軟件移植的工作量 ,因此在編寫底層驅(qū)動程序時已充分考慮和 DOS開發(fā)環(huán)境的底層驅(qū)動程序兼容 ,伯比侶如仃在編垤寫¨總”線驅(qū)動程序時編寫了 unsigned char in portb(unsigned int portAddress)和void outportb(unsigned int portAddress.unsigned char value)兩個函數(shù): void outportb(unsigned int portAddress,unsigned char value)
{
}:
unsigned char inportb(unsigned int portAddress)
{ll_
}
這樣原有在Dos下開發(fā)的程序源代碼不需要修改 ,只需要在ARM 的開發(fā)平臺上重新編譯一下即可。
7 結(jié)束語
采用ARM處理器替代386SX的PC/104處理器模塊后 , 首先成本大幅降低 ,該模塊在某公司的環(huán)形線圈車輛檢測器中投用后 ,產(chǎn)品的單位生產(chǎn)成本大幅降低 ,同時也最大限度的利用了以前的開發(fā)成果。第二 ,功耗大幅降低 ,CPU模塊的功耗從原來8W 降低到現(xiàn)在的1W;第三,程序燒錄方便 ,可以通過JTAG口或者串El直接下載程序 ,非常方便。第四,啟動速度加快 ,系統(tǒng)啟動時間小于0、5秒 ,遠小于基于 386SX的 PC/104處理器的 2—4秒 ;第五,執(zhí)行速度加快 ,全部任務(wù)執(zhí)行完畢的時間從 2ms縮短為 0.5ms,速度提高了約4倍 ;第六 ,開發(fā)平臺更加友好 ,基于 386SX的PC/104模塊的開發(fā)在 D0S下進行,開發(fā)工具一般用 TURBO C或者 BORLAND C,ARM 開發(fā)則采用 WlND0WS 下的 ADS(ARM Developer Suite)進行開發(fā) ,而且可以非常方便地在線跟蹤和調(diào)試 。
采用LPC2129CPU的PC/104處理器的車輛檢測器在國 家“十五”科技攻關(guān)lTS專項杭州市智能交通系統(tǒng)示范工程的西湖隧道 、九曜山隧道中成功的投入使用 ,準確 、及時、可靠的采集了隧道的車速 、流量 、車道占有率等道路交通信息 ,取得了良好的社會效益 。
參考文獻:
[1].RISCdatasheethttp:///datasheet/RISC_1189725.html.
[2].LPC2129datasheethttp:///datasheet/LPC2129_454522.html.
[3].TQFPdatasheethttp:///datasheet/TQFP_1528902.html.
[4].LPC2292datasheethttp:///datasheet/LPC2292_454556.html.
[5].RS232datasheethttp:///datasheet/RS232_585128.html.
[6].MAX3232datasheethttp:///datasheet/MAX3232_1107769.html.
liren