《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于LPC2292的CAN總線智能節(jié)點設計
基于LPC2292的CAN總線智能節(jié)點設計
摘要: 本文給出了一種基于本身已經嵌入了CAN控制器的單片機LPC2292的CAN總線智能節(jié)點的設計方案。
Abstract:
Key words :

引言

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

1 LPC2292控制器

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

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

2 節(jié)點硬件電路設計

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

3 軟件設計

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

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

3.1 LPC2292的啟動代碼

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

3.2 CAN控制器初始化

 

CAN總線控制器的初始化過程主要包括相應的引腳功能設置、工作方式設置、波特率參數(shù)設置以及出錯警告界限設置等,下面是對CAN1的初始化代碼(CAN2與之類似):


上面所述是對CAN控制器初始化的主要步驟,另外,還可以根據具體情況對其它CAN寄存器的值進行設置。

LPC2292中有個全局驗收濾波器,該模塊可為所有CAN控制器提供接收標識符的查詢功能(即驗收濾波)。另外,驗收濾波器還可為選擇的標準標識符提供fullCAN-style自動接收功能。在上面對CAN控制器的初始化中,為了簡化程序,設計時將驗收濾波器設置為旁路。但在實際應用中,應根據需要對它進行設置。事實上,讓它參與接收濾波的工作有助于改善節(jié)點接收信息的選擇性。CAN控制器初始化完成后,即可開始發(fā)送和接收信息。

3.3 發(fā)送過程

發(fā)送子程序主要負責節(jié)點報文的發(fā)送。發(fā)送時,用戶只需要將待發(fā)送的數(shù)據按特定的格式組合成一幀報文送入CAN控制器的發(fā)送緩存區(qū),然后啟動發(fā)送即可。當然,在向發(fā)送緩沖區(qū)送報文之前,必須先做一些判斷。發(fā)送程序分為發(fā)送遠程幀和數(shù)據幀兩種,其中遠程幀無數(shù)據場。圖2是發(fā)送過程流程圖。
 

3.4 接收過程

接收子程序主要負責節(jié)點報文的接收以及其它情況的處理。接收子程序相對要復雜一些。因為在處理接收報文的過程中,同時也要對總線關閉、錯誤報警、接收溢出等情況進行處理。CAN控制器報文的接收主要有兩種方式:中斷接收方式和查詢接收方式。如果對通信的實時性要求不是很強,建議采用查詢接收方式。兩種接收方式的編程思想基本相同。圖3給出了用查詢方式接收報文的流程圖。
 

4 結束語

該智能節(jié)點可利用EasyJTAG仿真器進行調試仿真,并可在實驗環(huán)境下完成通訊功能。該方法與51系列單片機相比,其通信速度較高。因此,在此基礎上構建CAN控制系統(tǒng)具有實際意義,但對于不同系統(tǒng),其軟件和硬件需要作相應的改動。

此內容為AET網站原創(chuàng),未經授權禁止轉載。
主站蜘蛛池模板: aaaaaa毛片免费看 | 日韩美女一级毛片a | 羞羞的视频在线免费观看 | 亚洲中文字幕特级毛片 | 制服丝袜在线网站 | 日韩欧美亚洲中字幕在线播放 | 国产丝袜视频在线 | 欧美中文字幕视频 | 日韩欧美动漫 | 天堂中文在线乱码 | 色九九视频 | 亚洲人成网站色7777 | 亚洲日日操 | 久久国产香蕉视频 | 性色在线观看 | 亚洲精品图区 | 蝌蚪网在线观看 | 日韩成人精品在线 | 一级中国毛片 | 久色视频网 | 久久精品麻豆日日躁夜夜躁 | 理伦片免费理论片 | 亚洲an日韩专区在线 | 国产不卡免费 | h羞羞涩涩动漫在线观看 | 国产成a人片在线观看视频 国产成人91 | 日韩黄在线观看免费视频 | 五月天综合激情网 | 亚洲一区影院 | 中文字幕 亚洲一区 | 久久不卡一区二区三区 | 神马午夜嘿嘿嘿 | 久久综合九色综合欧美就去吻 | 涩涩动漫网站入口 | 久久久免费观成人影院 | 张柏芝国产一区在线观看 | 国产麻豆一级在线观看 | 黄色一级片黄色一级片 | 天天搞夜夜 | 亚洲欧美精品一中文字幕 | 毛片线看免费观看 |