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