楊寶龍 華斌
(中國(guó)船舶重工集團(tuán)公司712研究所,武漢 430064)
隨著信息技術(shù)的發(fā)展,以臺(tái)式計(jì)算機(jī)為主流的時(shí)代將進(jìn)入以嵌入式系統(tǒng)形式存在的“后PC”時(shí)代。ARM體系作為專(zhuān)為嵌入式系統(tǒng)設(shè)計(jì)的處理器內(nèi)核,由于其高性能、低功耗、易擴(kuò)展的特點(diǎn),己成為嵌入式系統(tǒng)領(lǐng)域應(yīng)用最廣泛的處理器之一。同時(shí)隨著工控及消費(fèi)電子領(lǐng)域的發(fā)展,對(duì)于通信方式及速度等的要求越來(lái)越高,目前比較流行的通訊方式包括各種總線通訊及無(wú)線通訊等。
本文介紹了在以LPC2294為核心的ARM控制器的基礎(chǔ)上,充分利用ARM的控制優(yōu)勢(shì),整合各種通訊方式,為開(kāi)發(fā)者打造一個(gè)資源豐富的嵌入式通訊控制平臺(tái),在此平臺(tái)上囊括了目前流行的各種通訊方式以及基本的鍵盤(pán)輸入、LCD彩色液晶顯示、觸摸屏等人機(jī)接口。開(kāi)發(fā)者可在其上方便地開(kāi)發(fā)各種通訊類(lèi)產(chǎn)品,使產(chǎn)品研發(fā)周期更短,上市時(shí)間更短,系統(tǒng)可靠性更高,性?xún)r(jià)比更高。
整個(gè)平臺(tái)的硬件組成由一塊核心板以及一塊功能板組成,使用板間連接的方式組成一個(gè)整體,采用此種設(shè)計(jì)可使兩塊板方便的與另外所需的控制板組合,組成新的系統(tǒng),也利于各種模塊尤其是處理器的更新?lián)Q代。
平臺(tái)功能劃分框圖如圖1所示。
核心板包括處理器及其最小外圍擴(kuò)展電路,該模塊是整個(gè)平臺(tái)的核心,負(fù)責(zé)所有的控制與信息處理、存儲(chǔ),軟件操作系統(tǒng)存放于其外擴(kuò)閃存中。處理器的資源處理與使用情況為:利用其UART0完成IAP與RS232功能,UART1擴(kuò)展為RS485功能,4路CAN口只引出2路CAN口,存儲(chǔ)空間4個(gè) BANK:BANK0、BANK1、BANK2分配給片外存儲(chǔ)器,BANK3的CS3與地址A23、A22經(jīng)過(guò)3-8譯碼器分配給液晶、以太網(wǎng)芯片、其他需片選的控制器。共引出4路I/O口作為指示燈控制引腳。
功能板包括各種通訊方式的收發(fā)及控制電路,電源、鍵盤(pán)、顯示、觸摸屏等的控制電路和接口電路,實(shí)現(xiàn)各種通訊功能與人機(jī)交互。
該部分包括 ARM 控制器及擴(kuò)展 NAND FLASHROOM,SRAM,NOR FLASHROOM,EEPROM以及復(fù)位、晶振和必要的跳線開(kāi)關(guān)等,ARM控制器選用NXP的LPC2294,LPC2294是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的 16/32位ARM7TDMI的控制器,片內(nèi)集成了256 KB的高速Flash存儲(chǔ)器和l6 KB的靜態(tài)RAM。128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使 32位代碼能夠在最高時(shí)鐘速率下運(yùn)行。此外,LPC2294處理器還具有很多其他特性,使得它非常適用于工業(yè)控制;外部8、16或32位總線;片內(nèi)Boot裝載程序?qū)崿F(xiàn)ISP和IAP,為數(shù)據(jù)存儲(chǔ)和固件升級(jí)帶來(lái)極大的靈活性;4個(gè)CAN接口,帶有先進(jìn)的驗(yàn)收濾波器;2個(gè) 32位定時(shí)器(帶 4路捕獲和 4路比較通道)、PWM 單元(6路輸出)、實(shí)時(shí)時(shí)鐘和看門(mén)狗;多個(gè)串行接口,包括 2個(gè)工業(yè)標(biāo)準(zhǔn)UART;高速I(mǎi)2C接口(400 kHz)和2個(gè)SPI接口;向量中斷控制器,可配置優(yōu)先級(jí)和向量地址;多達(dá)112個(gè)通用I/0口(可承受5V電壓)。
NAND FLASHROOM 采 用 的 是K9F2808U0C,存儲(chǔ)空間為(16M+512K)×8 位,片內(nèi)寫(xiě)控制自動(dòng)實(shí)現(xiàn)所有編程和擦除功能;SRAM 采用的是 IS61LV51216,共有 512 K×16(8MB)的存儲(chǔ)空間;NOR FLASHROOM采用的是SST39VF160,其大小為 1M×16(16MB)??赏ㄟ^(guò)跳線選擇程序的啟動(dòng)、下載是從SRAM還是 NOR FLASHROOM;EEPROM 選擇的是CAT24WC16,其容量為 16KB,接口方式為 I2C總線方式[2]。
復(fù)位芯片采用MAX708,其復(fù)位輸出端直接接單片機(jī)的RST腳。
CAN隔離收發(fā)器采用 CTM1050芯片,CTM1050是一款帶隔離的高速 CAN收發(fā)器芯片,該芯片內(nèi)部集成了所有必需的DC/DC模塊、電氣隔離器件、CAN收發(fā)器件以及總線保護(hù)器件。芯片的主要功能是將 CAN控制器的邏輯電平轉(zhuǎn)換為 CAN總線的差分電平并且具有 DC 2500 V的隔離功能。該芯片具有良好的EMC性能,在不上電狀態(tài)下有理想的無(wú)源性能,并集成有完善的總線保護(hù)功能。其網(wǎng)絡(luò)端接有瞬變抑制器、分立終端電阻及其跳線[5]。
CTM1050的輸入、輸出線直接接于LPC2294的CAN0口和CAN1口,兩路CAN獨(dú)立,可分別接入兩個(gè)CAN網(wǎng)絡(luò)[5]。
以太網(wǎng)控制器采用的是RTL8019AS,該芯片是 8/16位 ISA總線的以太網(wǎng)控制器,RTL8019AS實(shí)現(xiàn)了以太網(wǎng)媒介訪問(wèn)層(MAC)和物理層(PHY)的功能,包括MAC數(shù)據(jù)幀的組裝/拆分與收發(fā)、地址識(shí)別、CRC編碼/校驗(yàn)等。支持IEEE02.3;支持8位或16位數(shù)據(jù)總線;內(nèi)置16KB的 SRAM,用于收發(fā)緩沖;全雙工,收發(fā)同時(shí)達(dá)到l0Mbps。
8019芯片的工作電壓是+5 V,LPC2294的內(nèi)核電壓是1.8 V,I/O口等邏輯電壓是3.3 V。雖然其I/O口可耐受5 V,但相互之間的I/O口連接仍通過(guò)限流電阻,以增加可靠性。采用16位數(shù)據(jù)總線與LPC2294連接。
網(wǎng)絡(luò)隔離變壓器與連接器采用集成于一體的HR901170A。
USB控制器采用的是 CH375,CH375 是一個(gè) USB總線的通用接口芯片,支持 USB-HOST主機(jī)方式和 USB-DEVICE/SLAVE 設(shè)備方式。CH375 的USB主機(jī)方式支持常用的USB全速設(shè)備,外部單片機(jī)可以通過(guò)CH375按照相應(yīng)的USB協(xié)議與 USB 設(shè)備通訊。CH375 還內(nèi)置了處理Mass-Storage 海量存儲(chǔ)設(shè)備的專(zhuān)用通訊協(xié)議的固件,外部單片機(jī)可以直接以扇區(qū)為基本單位讀寫(xiě)常用的 USB 存儲(chǔ)設(shè)備(包括 USB 硬盤(pán)/USB閃存盤(pán)/U 盤(pán)在本地端,CH375 具有8 位數(shù)據(jù)總線和讀、寫(xiě)、片選控制線以及中斷輸出,可以方便地掛接到單片機(jī)/DSP/MCU/MPU等控制器的系統(tǒng)總線上。在 USB主機(jī)方式下,CH375還提供了串行通訊方式,通過(guò)串行輸入、串行輸出和中斷輸出與單片機(jī)/DSP/MCU/MPU 等相連接。
CH375通過(guò)雙向總線驅(qū)動(dòng)器 74AC245與LPC2294的低8位數(shù)據(jù)總線連接,其他的讀、寫(xiě)控制線與LPC2294相應(yīng)的讀、寫(xiě)控制線連接,中斷口連接LPC2294的P0.15腳(硬件中斷1),片選連接于3-8譯碼器的1路輸出。USB主機(jī)和設(shè)備的接口共用。提供1路連接指示燈。
RS232接口芯片采用的是MAX3232,連接于UART0口。RS485采用的是MAX3082,集成有必要的電磁防護(hù)措施,連接 UART1口。均采用DB9連接器。
射頻收發(fā)器采用德州儀器的CC1100,該器件是用于低功耗無(wú)線應(yīng)用的業(yè)界系統(tǒng)成本最低的多通道無(wú)線電產(chǎn)品。工作于433 MHz頻段,控制接口為SPI,有效傳輸距離可達(dá)100 m。
LPC2294的SPI0口控制CC1100,天線采用可拆卸式。
備有藍(lán)牙模塊可接插于UART1口。
鍵盤(pán)控制芯片采用 MAX7348,可監(jiān)控達(dá) 40個(gè)按鍵,按鍵輸入被靜態(tài)監(jiān)控而非動(dòng)態(tài)掃描,確保低EMI,鍵盤(pán)控制器對(duì)按鍵操作去抖并將其保存在 FIFO中(如果使能自動(dòng)重復(fù)電路,包括自動(dòng)重復(fù)按鍵),I2C接口[3]。
液晶顯示器及觸摸屏采用 240*320點(diǎn)陣的彩色TFTG240320UTSW。并行8位數(shù)據(jù)總線接口。LED背光。
另外通過(guò) MAX7317 串行接口外設(shè)器件為微處理器擴(kuò)展10 個(gè)I/O 端口,額定電壓為7V。每個(gè)端口都可單獨(dú)配置為漏極開(kāi)路輸出或帶有過(guò)壓保護(hù)的施密特輸入,接入4路LED等。
LPC2294要使用2組電源,I/O口供電電源為3.3V,內(nèi)核及片內(nèi)外設(shè)供電電源為1.8 V,外部接入電源為DC24 V,經(jīng)過(guò)DC-DC模塊轉(zhuǎn)換為5 V,再使用 LDO芯片(低壓差電源芯片)穩(wěn)壓輸出 3.3 V及 1.8 V。LDO芯片采用了 SPX1117-3.3和SPX1117-1.8,其特點(diǎn)為輸出電流大,精度高,穩(wěn)定性高,功耗低。微控制器的模擬電源和數(shù)字電源經(jīng)過(guò)10uH的電感隔離[4]。
該平臺(tái)操作系統(tǒng)使用uC /OS-II。uC/OS-II主要特點(diǎn)如下:源代碼公開(kāi)。uC/OS-II不僅公開(kāi)全部的源代碼,并且對(duì)代碼有詳盡的注解;可移植:絕大部分uC /OS-II的源代碼是用ANSIC 語(yǔ)言編寫(xiě)。只有和處理器相關(guān)的部分是用匯編語(yǔ)言編寫(xiě)。所以只要對(duì)處理器相關(guān)的部分作相應(yīng)修改,uC/OS-II就可以在絕大多數(shù)8位、16位、32位甚至64位的系統(tǒng)上運(yùn)行;可剝奪實(shí)時(shí)內(nèi)核。uC /OS-II是個(gè)完全占先式內(nèi)核,而響應(yīng)時(shí)間是可知的很適合于對(duì)實(shí)時(shí)性要求比較高的系統(tǒng);多任務(wù),uC/OS-II最多可以運(yùn)行64個(gè)任務(wù),有8個(gè)為系統(tǒng)保留,所以應(yīng)用程序最多可以有56個(gè)任務(wù)。每個(gè)任務(wù)必須有不同的優(yōu)先級(jí);可確定性,uC /OS-II全部的函數(shù)謂用和執(zhí)行時(shí)間都有可確定性;系統(tǒng)服務(wù)的執(zhí)行時(shí)間不依賴(lài)于應(yīng)用任務(wù)的多少;可裁減,uC /OS-II依靠條件編譯實(shí)現(xiàn)可裁減性[1]。
在LPC2294上的移植,完成的工作包括:修改三個(gè)和體系結(jié)構(gòu)相關(guān)的文件;OS_CPU_C.C、OS_CPU_C.H以及OS_CPU_A.S。主要內(nèi)容為:數(shù)據(jù)類(lèi)型定義;ARM處理器相關(guān)宏定義;堆棧增長(zhǎng)方向、任務(wù)的切換等。
圖1 LPC2294平臺(tái)功能框圖
本文詳細(xì)地介紹了基于 ARM 控制器LPC2294的通訊平臺(tái)的硬件以及軟件設(shè)計(jì),適用廣泛,應(yīng)用性強(qiáng)。經(jīng)過(guò)長(zhǎng)時(shí)間的考核運(yùn)行,其穩(wěn)定性、可靠性以及兼容性均滿(mǎn)足要求。
[1]Abrosse Jean J, 邵貝貝譯. C/OS-II-源代碼公開(kāi)的實(shí)時(shí)嵌入式實(shí)時(shí)操作系統(tǒng). 北京: 中國(guó)電力出版社, 2001.
[2]周立功. ARM 與嵌入式系基礎(chǔ)教程[M]. 北京: 北京航天航天大學(xué)出版社, 2002.
[3]胡漢才. 單片機(jī)原理及其接口技術(shù)[M]. 北京: 清華大學(xué)出版社, 1995.
[4]余祖俊. 微機(jī)檢測(cè)與控制應(yīng)用系統(tǒng)設(shè)計(jì)[M]. 北京:北京交通大學(xué)出版社, 2001.
[5]鄔寬明. CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì)[M]. 北京:航空航天大學(xué)出版社, 1996.