基于LPC2292的CAN總線(xiàn)智能節點(diǎn)設計
引言
CAN(Controller Area Network)總線(xiàn)控制器局域網(wǎng)絡(luò )是在1986年2月的SAE大會(huì )上,由RoberBosch公司首先提出的。CAN總線(xiàn)是一種串行通信協(xié)議,它能有效支持高安全等級的分布式實(shí)時(shí)控制,其最初的目的是用在汽車(chē)上。但由于采用了許多新技術(shù)及獨特的設計,CAN總線(xiàn)與一般的通信總線(xiàn)相比,它的數據通信具有突出的可靠性、實(shí)時(shí)性和靈活性,目前的應用范圍已不局限于汽車(chē)行業(yè),而是擴展到了機械工業(yè)、紡織機械、農用機械、機器人、數控機床、醫療器械、家用電器及傳感器等諸多領(lǐng)域。CAN節點(diǎn)的設計多采用單片機,為此,本文給出了一種基于本身已經(jīng)嵌入了CAN控制器的單片機LPC2292的CAN總線(xiàn)智能節點(diǎn)的設計方案。
1 LPC2292控制器
LPC2292是一個(gè)可以支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMI-S CPU微控制器,它帶有256K字節的嵌人式高速Flash存儲器,并具有的128位寬度的存儲器接口和獨特的加速結構,可使32位代碼在最大時(shí)鐘速率下運行。而對代碼有嚴格控制要求的應用則可使用16位Thumb模式,這樣可將代碼規模降低30%以上,而性能的損失卻很小。LPC2292采用144腳封裝、可使用的GPIO高達76(使用外部存儲器)~112個(gè)(單片應用)、并具有極低的功耗。LPC2292內含多個(gè)32位定時(shí)器、4路10位ADC、2路CAN以及多達9路外部中斷等,特別適用于汽車(chē)、工業(yè)控制應用、醫療系統和容錯維護總線(xiàn)。
LPC2292內部集成的2路CAN控制器符合CAN規范2.0B ISO 11898-1;可訪(fǎng)問(wèn)32位的寄存器和RAM;每個(gè)總線(xiàn)的數據速率為1 MB/s;全局驗收濾波器可識別所有總線(xiàn)的11位和29位Rx標識符;驗收濾波器為選擇的標準標識符提供有FullCAN-style自動(dòng)接收功能。
2 節點(diǎn)硬件電路設計
CAN總線(xiàn)的節點(diǎn)硬件主要包括LPC2292、CAT1024、82C250、6N137以及B0505S。其中,LPC2292是節點(diǎn)的微處理器及CAN通信控制器,CAN總線(xiàn)驅動(dòng)器采用82C250。為了增強CAN總線(xiàn)節點(diǎn)的抗干擾能力,在TD1、RD1與82C250之間應通過(guò)高速光耦6N137相連,這樣可以很好的實(shí)現總線(xiàn)上各CAN節點(diǎn)間的電氣隔離。要注意的是:光耦電路部分采用的兩個(gè)電源VCC和VDD必須完全隔離。這里的B0505S就起這個(gè)作用。另外,節點(diǎn)復位電路采用CAT1024來(lái)提高其可靠性。圖1所示是CAN總線(xiàn)的節點(diǎn)硬件電路。
3 軟件設計
該系統的軟件調試可在A(yíng)DS1.2調試環(huán)境及EasyJTAG仿真器上進(jìn)行。
和硬件電路設計相比,軟件的設計相對來(lái)說(shuō)要復雜些。CAN總線(xiàn)智能節點(diǎn)的軟件設計主要包括三部分:CAN節點(diǎn)初始化、報文發(fā)送和報文接收。除此之外,還必須編寫(xiě)LPC2292的啟動(dòng)代碼,即對系統進(jìn)行初始化。
3.1 LPC2292的啟動(dòng)代碼
啟動(dòng)代碼包括異常中斷向量表、堆棧初始化、目標板初始化及存儲系統初始化等,一般都用匯編語(yǔ)言編寫(xiě)。這里不作詳細介紹。
評論