基于A(yíng)RM開(kāi)發(fā)板的車(chē)輛檢測系統控制單元設計
if(statue0x01)
本文引用地址:http://dyxdggzs.com/article/196599.htm{IO0SET |= errorled;}
//操作失敗
}
LPC2114串口通信實(shí)現
控制系統通過(guò)LPC2114的兩個(gè)UART實(shí)現和LD4以及中心站的數據交換,兩個(gè)UART具備觸發(fā)點(diǎn)可調的16B收發(fā)FIFO。其中,UART1比UART0增加了調制解調器接口。UART的基本操作方法和傳統51內核單片機相似。
首先,設置I/O連接到UART;然后設置串口波特率(如U0DLM、U0DLL);接著(zhù)設置串口工作模式(如U0LCR、U0FCR);這時(shí)就可以通過(guò)寄存器U0THR和U0RBR發(fā)送/接收數據了,發(fā)送/接收模塊的狀態(tài)信息可以通過(guò)U0LSR寄存器讀取。
系統通過(guò)RS-485總線(xiàn)和LD4板卡通信,采用MAX3485作為RS-485總線(xiàn)控制器和LPC2114的UART1通信。MAX3485是3.3V供電的半雙工收發(fā)芯片,將差分RS-485總線(xiàn)信號轉換成ARM核能夠接受的串口信號。為了實(shí)現和PC機通信,系統采用3.3V工作電壓的MAX3232作為RS-232電平轉換芯片。
LPC2114設計注意事項
LPC2114在開(kāi)發(fā)的過(guò)程中有一些需要特殊注意的問(wèn)題,總結如下:
(1)當用戶(hù)程序寫(xiě)入Flash后不能運行時(shí),首先,需要考慮中斷向量表是否正確,中斷向量表累加和必須為0。其次,需要考慮向量表的定位,向量表是否已經(jīng)定位在0x00000000地址。然后,需要考慮MEMMAP寄存器的設置是否正確,否則中斷無(wú)法執行。此外,還需要考慮ISP硬件條件是否滿(mǎn)足,LPC2114的P0.14腳在#RESET為低時(shí),該引腳線(xiàn)上的低電平將強制芯片進(jìn)入ISP狀態(tài),硬件設計時(shí)必須在該引腳加10KW上拉電阻,否則,該引腳不穩定,對設備啟動(dòng)將會(huì )有影響。
(2)LPC2114共有46個(gè)GPIO,這些I/O可以任意配置,但是個(gè)別引腳開(kāi)漏輸出(P0.2、P0.3),需加上拉電阻。另外,Flash存儲器K9F2808狀態(tài)輸出引腳R/#B開(kāi)漏輸出,需加10KW的上拉電阻。
(3)LPC2114芯片加密后,只能通過(guò)ISP對芯片全局擦除后才能恢復JTAG調試以及下載等功能。當#RESET為低時(shí),P1.26的低電平使P1.26~P1.31復位后作為調試端口,注意在P1.26引腳和地之間需接一個(gè)弱偏置電阻。
系統軟件設計思想及注意事項
車(chē)輛檢測系統ARM軟件采用分層設計思想,整個(gè)軟件由驅動(dòng)程序和應用軟件兩部分構成。驅動(dòng)程序部分封裝了Flash操作、RS-485操作、實(shí)時(shí)時(shí)鐘(RTC)操作、RS-232操作和I/O等操作。應用軟件分成基本函數庫和主程序。
在32位ARM核應用系統中,為了進(jìn)行系統初始化,往往采用一個(gè)匯編文件作為啟動(dòng)代碼,來(lái)實(shí)現堆棧、中斷、系統變量、I/O初始化以及地址重映射等操作。開(kāi)發(fā)平臺ADS的策略是不提供完整的啟動(dòng)代碼,不足部分需要開(kāi)發(fā)人員自己編寫(xiě)。
系統設計的啟動(dòng)代碼包含中斷向量表、堆棧初始化以及相應的中斷服務(wù)程序與C語(yǔ)言的接口。對LPC2114而言,為了使向量表中所有數據32位累加和為0 ,向量表中設置保留向量值,將中斷向量表中的32個(gè)字節數累加,其中,保留向量值不用累加,然后取累加值的補碼,這個(gè)補碼的低32位就是保留向量的值。該保留向量值將被BOOT裝載程序用作有效的用戶(hù)程序關(guān)鍵字。當向量表中所有數據累加和為0時(shí),且ISP外部硬件條件不滿(mǎn)足時(shí),BOOT裝載程序將執行用戶(hù)程序。
結語(yǔ)
本文基于PHILIPS公司最新的ARM7內核微處理器LPC2114實(shí)現了高速公路車(chē)輛檢測系統的控制單元部分的設計。LPC2114使用簡(jiǎn)單、開(kāi)發(fā)容易、具有較高的性?xún)r(jià)比,非常適用于嵌入式系統中。目前本系統已經(jīng)推向市場(chǎng),并取得了較好經(jīng)濟效益。
評論