基于LPC2119和μC/OSII的CAN中繼器設(shè)計(jì)
發(fā)布時(shí)間:2007/8/24 0:00:00 訪(fǎng)問(wèn)次數(shù):957
作者:沈躍 王家鼎
摘要:基于提高CAN總線(xiàn)組網(wǎng)能力的考慮,提出一種新穎的CAN中繼器設(shè)計(jì)方法;闡述以L(fǎng)PC2119控制器為核心的硬件設(shè)計(jì)方案;詳細(xì)分析在μC/OSII實(shí)時(shí)操作系統(tǒng)下的軟件實(shí)現(xiàn)過(guò)程;針對(duì)中繼器的實(shí)時(shí)性和安全性以及總線(xiàn)與總線(xiàn)之間可能存在的速度不匹配的問(wèn)題,確立提升緊急任務(wù)優(yōu)先級(jí)、建立相關(guān)事件標(biāo)志、合理地對(duì)事件與任務(wù)進(jìn)行同步的改進(jìn)方法,從而有效地解決組網(wǎng)中最遠(yuǎn)傳輸距離和最大節(jié)電數(shù)限制的問(wèn)題。
關(guān)鍵詞:中繼器 CAN LPC2119 μC/OSII
引 言
CAN總線(xiàn)的直接通信距離只有10 km左右,而且由于收發(fā)器驅(qū)動(dòng)能力的限制,總線(xiàn)上最多只能掛110個(gè)節(jié)點(diǎn),給系統(tǒng)組網(wǎng)帶來(lái)一定的困難。CAN中繼器就是為了解決這個(gè)問(wèn)題而設(shè)計(jì)的。由于中繼器具有數(shù)據(jù)轉(zhuǎn)發(fā)功能,不僅可以擴(kuò)大通信距離,還可以增加節(jié)點(diǎn)的最大數(shù)目。對(duì)CAN中繼器初始化參數(shù)進(jìn)行設(shè)置,可以在不同的網(wǎng)段內(nèi)采用不同的通信速率,還可以對(duì)報(bào)文進(jìn)行過(guò)濾,減輕總線(xiàn)負(fù)擔(dān)。
1 CAN中繼器的硬件設(shè)計(jì)
1.1 微控制器LPC2119簡(jiǎn)介
CAN中繼器是以ARM微控制器LPC2119為核心的軟硬件系統(tǒng)。LPC2119是Philips公司生產(chǎn)的一款基于支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMISMCU,帶有128 KB嵌入的高速Flash存儲(chǔ)器。獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過(guò)30 %,而性能的損失卻很小。LPC2119內(nèi)部集成2個(gè)CAN控制器。它的主要特性有:?jiǎn)蝹(gè)總線(xiàn)上的數(shù)據(jù)傳輸速率高達(dá)1 Mb/s;32位寄存器和RAM訪(fǎng)問(wèn);兼容CAN 2.0B, ISO 118981規(guī)范;全局驗(yàn)收濾波器可以識(shí)別所有的11位和29位Rx標(biāo)識(shí)符;驗(yàn)收濾波器為選擇的標(biāo)準(zhǔn)標(biāo)識(shí)符提供Full CANstyle自動(dòng)接收。
1.2 LPC2119內(nèi)部CAN控制器與SJA1000比較
LPC2119內(nèi)部集成的CAN控制器與Philips公司的SJA1000 CAN控制器相比較大致相同,只是在驗(yàn)收濾波這一環(huán)略有不同,這為習(xí)慣SJA1000的開(kāi)發(fā)人員采用LPC2119提供了方便。SJA1000驗(yàn)收濾波器由驗(yàn)收代碼寄存器和驗(yàn)收屏蔽寄存器定義,要接收?qǐng)?bào)文的位模式在驗(yàn)收代碼寄存器中定義,相應(yīng)的驗(yàn)收屏蔽寄存器允許定義某些位為“無(wú)關(guān)”,通過(guò)模式寄存器可以選擇不同的過(guò)濾模式:?jiǎn)芜^(guò)濾模式和雙過(guò)濾模式。而對(duì)LPC2119內(nèi)部集成的CAN控制器,全局驗(yàn)收過(guò)濾器包含一個(gè)512×32(2 KB)的RAM,通過(guò)軟件處理,可在RAM中存放1~5個(gè)標(biāo)識(shí)符表格,整個(gè)RAM可容納1024個(gè)標(biāo)準(zhǔn)標(biāo)識(shí)符或512的擴(kuò)展標(biāo)識(shí)符或兩種類(lèi)型混合的標(biāo)識(shí)符。同時(shí)有5個(gè)地址寄存器指向驗(yàn)收過(guò)濾器RAM的表格:Full CAN標(biāo)準(zhǔn)地址,標(biāo)準(zhǔn)單個(gè)地址,標(biāo)準(zhǔn)地址范圍,擴(kuò)展單個(gè)地址或擴(kuò)展地址范圍。當(dāng)CAN控制器的接收端已接收到一個(gè)完整的標(biāo)識(shí)符時(shí),它將通知驗(yàn)收過(guò)濾器,驗(yàn)收過(guò)濾器響應(yīng)這個(gè)信號(hào),并讀出控制器編號(hào)、標(biāo)識(shí)符尺寸,以及來(lái)自控制器本身的標(biāo)識(shí)符,然后通過(guò)驗(yàn)收過(guò)濾器搜索RAM中的表格,以決定接收或放棄這一幀信息。
1.3 CAN中繼器硬件結(jié)構(gòu)
中繼器的硬件結(jié)構(gòu)框圖如圖1所示。LPC2119分別通過(guò)CAN總線(xiàn)收發(fā)器與兩路總線(xiàn)相連;總線(xiàn)驅(qū)動(dòng)器采用帶隔離的DC/DC模塊單獨(dú)供電,不僅實(shí)現(xiàn)了兩路CAN接口之間的電器隔離,也實(shí)現(xiàn)了中繼器與CAN總線(xiàn)的電器隔離。除此之外,還有LED顯示和鍵盤(pán)接口。LED用于顯示中繼器的工作狀態(tài),鍵盤(pán)用來(lái)修正總線(xiàn)的波特率。最終程序的調(diào)試與跟蹤通過(guò)JTAG調(diào)試口完成。
圖1硬件結(jié)構(gòu)框圖
2 系統(tǒng)軟件設(shè)計(jì)
2.1 引入μC/OSII實(shí)時(shí)操作系統(tǒng)
隨著應(yīng)用的復(fù)雜化,采用傳統(tǒng)前后臺(tái)設(shè)計(jì)方法,會(huì)顯得過(guò)于復(fù)雜,實(shí)時(shí)性得不到保證,而且容易發(fā)生死鎖。解決這些問(wèn)題的最好方法就是采用實(shí)時(shí)操作系統(tǒng)。
μC/OSII完全是占先式的實(shí)時(shí)內(nèi)核, 是基于優(yōu)先級(jí)的, 即總是讓就緒態(tài)中優(yōu)先級(jí)最高的任務(wù)先運(yùn)行, 因此實(shí)時(shí)性比非占先式的內(nèi)核要好。 它包含了實(shí)時(shí)內(nèi)核、任務(wù)管理、時(shí)間管理、任務(wù)間通信同
作者:沈躍 王家鼎
摘要:基于提高CAN總線(xiàn)組網(wǎng)能力的考慮,提出一種新穎的CAN中繼器設(shè)計(jì)方法;闡述以L(fǎng)PC2119控制器為核心的硬件設(shè)計(jì)方案;詳細(xì)分析在μC/OSII實(shí)時(shí)操作系統(tǒng)下的軟件實(shí)現(xiàn)過(guò)程;針對(duì)中繼器的實(shí)時(shí)性和安全性以及總線(xiàn)與總線(xiàn)之間可能存在的速度不匹配的問(wèn)題,確立提升緊急任務(wù)優(yōu)先級(jí)、建立相關(guān)事件標(biāo)志、合理地對(duì)事件與任務(wù)進(jìn)行同步的改進(jìn)方法,從而有效地解決組網(wǎng)中最遠(yuǎn)傳輸距離和最大節(jié)電數(shù)限制的問(wèn)題。
關(guān)鍵詞:中繼器 CAN LPC2119 μC/OSII
引 言
CAN總線(xiàn)的直接通信距離只有10 km左右,而且由于收發(fā)器驅(qū)動(dòng)能力的限制,總線(xiàn)上最多只能掛110個(gè)節(jié)點(diǎn),給系統(tǒng)組網(wǎng)帶來(lái)一定的困難。CAN中繼器就是為了解決這個(gè)問(wèn)題而設(shè)計(jì)的。由于中繼器具有數(shù)據(jù)轉(zhuǎn)發(fā)功能,不僅可以擴(kuò)大通信距離,還可以增加節(jié)點(diǎn)的最大數(shù)目。對(duì)CAN中繼器初始化參數(shù)進(jìn)行設(shè)置,可以在不同的網(wǎng)段內(nèi)采用不同的通信速率,還可以對(duì)報(bào)文進(jìn)行過(guò)濾,減輕總線(xiàn)負(fù)擔(dān)。
1 CAN中繼器的硬件設(shè)計(jì)
1.1 微控制器LPC2119簡(jiǎn)介
CAN中繼器是以ARM微控制器LPC2119為核心的軟硬件系統(tǒng)。LPC2119是Philips公司生產(chǎn)的一款基于支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMISMCU,帶有128 KB嵌入的高速Flash存儲(chǔ)器。獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過(guò)30 %,而性能的損失卻很小。LPC2119內(nèi)部集成2個(gè)CAN控制器。它的主要特性有:?jiǎn)蝹(gè)總線(xiàn)上的數(shù)據(jù)傳輸速率高達(dá)1 Mb/s;32位寄存器和RAM訪(fǎng)問(wèn);兼容CAN 2.0B, ISO 118981規(guī)范;全局驗(yàn)收濾波器可以識(shí)別所有的11位和29位Rx標(biāo)識(shí)符;驗(yàn)收濾波器為選擇的標(biāo)準(zhǔn)標(biāo)識(shí)符提供Full CANstyle自動(dòng)接收。
1.2 LPC2119內(nèi)部CAN控制器與SJA1000比較
LPC2119內(nèi)部集成的CAN控制器與Philips公司的SJA1000 CAN控制器相比較大致相同,只是在驗(yàn)收濾波這一環(huán)略有不同,這為習(xí)慣SJA1000的開(kāi)發(fā)人員采用LPC2119提供了方便。SJA1000驗(yàn)收濾波器由驗(yàn)收代碼寄存器和驗(yàn)收屏蔽寄存器定義,要接收?qǐng)?bào)文的位模式在驗(yàn)收代碼寄存器中定義,相應(yīng)的驗(yàn)收屏蔽寄存器允許定義某些位為“無(wú)關(guān)”,通過(guò)模式寄存器可以選擇不同的過(guò)濾模式:?jiǎn)芜^(guò)濾模式和雙過(guò)濾模式。而對(duì)LPC2119內(nèi)部集成的CAN控制器,全局驗(yàn)收過(guò)濾器包含一個(gè)512×32(2 KB)的RAM,通過(guò)軟件處理,可在RAM中存放1~5個(gè)標(biāo)識(shí)符表格,整個(gè)RAM可容納1024個(gè)標(biāo)準(zhǔn)標(biāo)識(shí)符或512的擴(kuò)展標(biāo)識(shí)符或兩種類(lèi)型混合的標(biāo)識(shí)符。同時(shí)有5個(gè)地址寄存器指向驗(yàn)收過(guò)濾器RAM的表格:Full CAN標(biāo)準(zhǔn)地址,標(biāo)準(zhǔn)單個(gè)地址,標(biāo)準(zhǔn)地址范圍,擴(kuò)展單個(gè)地址或擴(kuò)展地址范圍。當(dāng)CAN控制器的接收端已接收到一個(gè)完整的標(biāo)識(shí)符時(shí),它將通知驗(yàn)收過(guò)濾器,驗(yàn)收過(guò)濾器響應(yīng)這個(gè)信號(hào),并讀出控制器編號(hào)、標(biāo)識(shí)符尺寸,以及來(lái)自控制器本身的標(biāo)識(shí)符,然后通過(guò)驗(yàn)收過(guò)濾器搜索RAM中的表格,以決定接收或放棄這一幀信息。
1.3 CAN中繼器硬件結(jié)構(gòu)
中繼器的硬件結(jié)構(gòu)框圖如圖1所示。LPC2119分別通過(guò)CAN總線(xiàn)收發(fā)器與兩路總線(xiàn)相連;總線(xiàn)驅(qū)動(dòng)器采用帶隔離的DC/DC模塊單獨(dú)供電,不僅實(shí)現(xiàn)了兩路CAN接口之間的電器隔離,也實(shí)現(xiàn)了中繼器與CAN總線(xiàn)的電器隔離。除此之外,還有LED顯示和鍵盤(pán)接口。LED用于顯示中繼器的工作狀態(tài),鍵盤(pán)用來(lái)修正總線(xiàn)的波特率。最終程序的調(diào)試與跟蹤通過(guò)JTAG調(diào)試口完成。
圖1硬件結(jié)構(gòu)框圖
2 系統(tǒng)軟件設(shè)計(jì)
2.1 引入μC/OSII實(shí)時(shí)操作系統(tǒng)
隨著應(yīng)用的復(fù)雜化,采用傳統(tǒng)前后臺(tái)設(shè)計(jì)方法,會(huì)顯得過(guò)于復(fù)雜,實(shí)時(shí)性得不到保證,而且容易發(fā)生死鎖。解決這些問(wèn)題的最好方法就是采用實(shí)時(shí)操作系統(tǒng)。
μC/OSII完全是占先式的實(shí)時(shí)內(nèi)核, 是基于優(yōu)先級(jí)的, 即總是讓就緒態(tài)中優(yōu)先級(jí)最高的任務(wù)先運(yùn)行, 因此實(shí)時(shí)性比非占先式的內(nèi)核要好。 它包含了實(shí)時(shí)內(nèi)核、任務(wù)管理、時(shí)間管理、任務(wù)間通信同
熱門(mén)點(diǎn)擊
- 氣敏元件和傳感器技術(shù)的發(fā)展現(xiàn)狀
- 鉑電阻測(cè)溫儀的設(shè)計(jì)與實(shí)現(xiàn)
- 虛擬儀器驅(qū)動(dòng)器綜述
- 傳感器接口電路的抗干擾設(shè)計(jì)
- 8X8LED點(diǎn)陣顯示原理與編程技術(shù)
- 基于ADSP21060和VirtexII的圖
- 用PDIUSBD12和K9F5608U0A設(shè)
- 一種神經(jīng)信號(hào)調(diào)理電路的設(shè)計(jì)
- PXI總線(xiàn)數(shù)字輸入/輸出模塊的設(shè)計(jì)與實(shí)現(xiàn)
- 血流檢測(cè)儀的動(dòng)態(tài)電源管理模塊設(shè)計(jì)
推薦技術(shù)資料
- 按鈕與燈的互動(dòng)實(shí)例
- 現(xiàn)在趕快去看看這個(gè)目錄卞有什么。FGA15N120AN... [詳細(xì)]
- AMOLED顯示驅(qū)動(dòng)芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計(jì)
- GB300 超級(jí)芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個(gè)最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究