關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計(jì)應(yīng)用 > 基于LPC2292的CAN總線智能節(jié)點(diǎn)設(shè)計(jì)

基于LPC2292的CAN總線智能節(jié)點(diǎn)設(shè)計(jì)

作者: 時(shí)間:2009-09-22 來源:網(wǎng)絡(luò) 收藏

引言

(Controller Area Network)控制器局域網(wǎng)絡(luò)是在1986年2月的SAE大會上,由RoberBosch公司首先提出的。是一種串行通信協(xié)議,它能有效支持高安全等級的分布式實(shí)時(shí)控制,其最初的目的是用在汽車上。但由于采用了許多新技術(shù)及獨(dú)特的,與一般的通信總線相比,它的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性,目前的應(yīng)用范圍已不局限于汽車行業(yè),而是擴(kuò)展到了機(jī)械工業(yè)、紡織機(jī)械、農(nóng)用機(jī)械、機(jī)器人、數(shù)控機(jī)床、醫(yī)療器械、家用電器及傳感器等諸多領(lǐng)域。CAN多采用單片機(jī),為此,本文給出了一種本身已經(jīng)嵌入了CAN控制器的單片機(jī)的CAN總線方案。

本文引用地址:http://butianyuan.cn/article/163561.htm

1 控制器

是一個(gè)可以支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMI-S CPU微控制器,它帶有256K字節(jié)的嵌人式高速Flash存儲器,并具有的128位寬度的存儲器接口和獨(dú)特的加速結(jié)構(gòu),可使32位代碼在最大時(shí)鐘速率下運(yùn)行。而對代碼有嚴(yán)格控制要求的應(yīng)用則可使用16位Thumb模式,這樣可將代碼規(guī)模降低30%以上,而性能的損失卻很小。LPC2292采用144腳封裝、可使用的GPIO高達(dá)76(使用外部存儲器)~112個(gè)(單片應(yīng)用)、并具有極低的功耗。LPC2292內(nèi)含多個(gè)32位定時(shí)器、4路10位ADC、2路CAN以及多達(dá)9路外部中斷等,特別適用于汽車、工業(yè)控制應(yīng)用、醫(yī)療系統(tǒng)和容錯(cuò)維護(hù)總線。

LPC2292內(nèi)部集成的2路CAN控制器符合CAN規(guī)范2.0B ISO 11898-1;可訪問32位的寄存器和RAM;每個(gè)總線的數(shù)據(jù)速率為1 MB/s;全局驗(yàn)收濾波器可識別所有總線的11位和29位Rx標(biāo)識符;驗(yàn)收濾波器為選擇的標(biāo)準(zhǔn)標(biāo)識符提供有FullCAN-style自動接收功能。

2 硬件電路設(shè)計(jì)

CAN總線的節(jié)點(diǎn)硬件主要包括LPC2292、CAT1024、82C250、6N137以及B0505S。其中,LPC2292是節(jié)點(diǎn)的微處理器及CAN通信控制器,CAN總線驅(qū)動器采用82C250。為了增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,在TD1、RD1與82C250之間應(yīng)通過高速光耦6N137相連,這樣可以很好的實(shí)現(xiàn)總線上各CAN節(jié)點(diǎn)間的電氣隔離。要注意的是:光耦電路部分采用的兩個(gè)電源VCC和VDD必須完全隔離。這里的B0505S就起這個(gè)作用。另外,節(jié)點(diǎn)復(fù)位電路采用CAT1024來提高其可靠性。圖1所示是CAN總線的節(jié)點(diǎn)硬件電路。

3 軟件設(shè)計(jì)

該系統(tǒng)的軟件調(diào)試可在ADS1.2調(diào)試環(huán)境及EasyJTAG仿真器上進(jìn)行。

和硬件電路設(shè)計(jì)相比,軟件的設(shè)計(jì)相對來說要復(fù)雜些。CAN總線節(jié)點(diǎn)的軟件設(shè)計(jì)主要包括三部分:CAN節(jié)點(diǎn)初始化、報(bào)文發(fā)送和報(bào)文接收。除此之外,還必須編寫LPC2292的啟動代碼,即對系統(tǒng)進(jìn)行初始化。

3.1 LPC2292的啟動代碼

啟動代碼包括異常中斷向量表、堆棧初始化、目標(biāo)板初始化及存儲系統(tǒng)初始化等,一般都用匯編語言編寫。這里不作詳細(xì)介紹。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉