當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]引言控制器局域網(wǎng)(CAN) 是德國(guó)BOSCH公司于1986年為解決汽車內(nèi)部測(cè)量與執(zhí)行部件之間的數(shù)據(jù)通信而開(kāi)發(fā)的一種串行數(shù)據(jù)通信協(xié)議。它的網(wǎng)絡(luò)模型結(jié)構(gòu)包括物理層、 數(shù)據(jù)鏈路層和

引言

控制器局域網(wǎng)(CAN) 是德國(guó)BOSCH公司于1986年為解決汽車內(nèi)部測(cè)量與執(zhí)行部件之間的數(shù)據(jù)通信而開(kāi)發(fā)的一種串行數(shù)據(jù)通信協(xié)議。它的網(wǎng)絡(luò)模型結(jié)構(gòu)包括物理層、 數(shù)據(jù)鏈路層和應(yīng)用層,以雙絞線為信號(hào)傳輸介質(zhì),通信速率最高可達(dá)1Mbps ( 40m ),直接傳輸距離最遠(yuǎn)可以達(dá)到10km/5Kbit/s,每條總線可掛接設(shè)備多達(dá)110個(gè),特別適用于實(shí)時(shí)性要求很高的網(wǎng)絡(luò)。由于其多主的工作方式、優(yōu)良的穩(wěn)定性和實(shí)時(shí)性能、成熟的仲裁和同步技術(shù),加上開(kāi)放式總線結(jié)構(gòu)、短報(bào)文高速通訊、遠(yuǎn)程通訊能力、超強(qiáng)的糾錯(cuò)和擴(kuò)展功能,以及控制簡(jiǎn)單、應(yīng)用成本低等優(yōu)點(diǎn),已經(jīng)被越來(lái)越多地應(yīng)用到廣大網(wǎng)絡(luò)控制系統(tǒng)領(lǐng)域,并被公認(rèn)為最有前途的現(xiàn)場(chǎng)總線技術(shù)之一。

USB(通用串行總線),是1995年以Intel為首的7家公司推出的一種協(xié)議規(guī)范,用以實(shí)現(xiàn)將將計(jì)算機(jī)的各種外圍接口統(tǒng)一起來(lái),用帶四根線(兩根電源線和兩根數(shù)據(jù)線)的接口來(lái)實(shí)現(xiàn)任意設(shè)備和PC機(jī)間的通訊。具有即插即用,軟硬件支持廣泛、低功耗、價(jià)格低、數(shù)據(jù)傳輸率高、擴(kuò)充性好、使用靈活、硬件結(jié)構(gòu)標(biāo)準(zhǔn)化高和完備的總線拓?fù)浣Y(jié)構(gòu)等特點(diǎn),因此USB自問(wèn)世以來(lái),顯示出了強(qiáng)大的生命力,在以計(jì)算機(jī)為上位機(jī)的控制系統(tǒng)中,得到廣泛的應(yīng)用。

隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,PC這個(gè)已經(jīng)把USB采納為通用總線和通用接口標(biāo)準(zhǔn)的控制器幾乎已經(jīng)成為各個(gè)領(lǐng)域操控終端的首要選擇。通過(guò)USB接口,在安裝必要的應(yīng)用軟件和驅(qū)動(dòng)程序之后,PC能接入到各個(gè)控制系統(tǒng)中去。因此,為了提高應(yīng)用的高效率、操控的便利性,把USB的通用型和CAN的專業(yè)性結(jié)合起來(lái),達(dá)到優(yōu)勢(shì)互補(bǔ),有必要設(shè)計(jì)一種高速USB2.0-CAN適配卡,以實(shí)現(xiàn)USB2.0通信協(xié)議與CAN總線通信協(xié)議的轉(zhuǎn)換。

系統(tǒng)結(jié)構(gòu)

系統(tǒng)主要包含三部分:微控制器、USB接口和CAN接口的控制部分(見(jiàn)圖1)。其中C8051F040作為系統(tǒng)微控制器。USB接口功能控制器采用CP2102 USB轉(zhuǎn)UART橋接芯片。其中C8051F040作為CAN總線控制器負(fù)責(zé)與CAN網(wǎng)絡(luò)交換數(shù)據(jù),CP2102實(shí)現(xiàn)USB口信息格式與串口格式的轉(zhuǎn)換,最后由C8051F040操作串口與CP2102交換數(shù)據(jù),實(shí)現(xiàn)USB2.0到CAN總線協(xié)議的轉(zhuǎn)換。

 

圖1 USB2.0-CAN適配卡框圖

硬件實(shí)現(xiàn)

CP2102

CP2102是Silicon Labs公司的USB轉(zhuǎn)UART橋接芯片,具有集成度高、速度高、價(jià)格低廉、開(kāi)發(fā)簡(jiǎn)單等特點(diǎn),能夠用最簡(jiǎn)單的外部電路,最少的外部器件簡(jiǎn)便地實(shí)現(xiàn)USB到 UART的轉(zhuǎn)換。CP2102 包含USB2.0全速功能控制器、USB收發(fā)器、振蕩器和帶有全部的調(diào)制解調(diào)器控制信號(hào)的異步串行數(shù)據(jù)總線(UART)。CP2102的內(nèi)部結(jié)構(gòu)如圖2所示,內(nèi)置有與計(jì)算機(jī)通信的協(xié)議,工作時(shí),提供的免費(fèi)的實(shí)用COM口器件驅(qū)動(dòng)器允許一個(gè)基于CP2102的產(chǎn)品作為的一個(gè)口使用,也就是通常所說(shuō)的產(chǎn)生一個(gè)虛擬的口,電路無(wú)需任何外部的USB器件即可工作,工作特性可以滿足CAN總線的傳輸波特率要求。

 

圖2 CP2102的內(nèi)部結(jié)構(gòu)圖

微控制器

系統(tǒng)采用Silicon Laboratories公司推出的混合信號(hào)系統(tǒng)級(jí)單片機(jī)C8051F040作為系統(tǒng)的控制器,內(nèi)部集成的CAN控制器包括一個(gè)CAN內(nèi)核、消息 RAM(獨(dú)立于CIP-51內(nèi)核)、消息處理單元、控制寄存器等但是沒(méi)有提供物理層的驅(qū)動(dòng)器,要實(shí)現(xiàn)與CAN總線的接口,還需接口控制器,例如 82C250、TJA1050等。數(shù)據(jù)接收和濾波都是由CAN控制器完成的,不需要CIP-51內(nèi)核的參與,通過(guò)這種方式使CAN通訊時(shí)占用的系統(tǒng)資源最小。CIP-51內(nèi)核通過(guò)其內(nèi)部的特殊功能寄存器來(lái)配置CAN控制器以及實(shí)現(xiàn)數(shù)據(jù)交互。

電路設(shè)計(jì)

系統(tǒng)電路如圖3所示,由CP2102、C8051F040、CAN驅(qū)動(dòng)芯片PCA82C250以及光電隔離芯片6N137等組成。CP2102 的RTX、TXD引腳分別是串口的接收、輸出端,與單片機(jī)的對(duì)應(yīng)引腳相連。USB的終止和恢復(fù)信號(hào)支持功能便于CP2102器件以及外部電路的電源管理。當(dāng)在總線上檢測(cè)到終止信號(hào)時(shí),CP2102將進(jìn)人終止模式。在進(jìn)人終止模式時(shí),CP2102會(huì)發(fā)SUSPEND和信號(hào)。但是,SUSPEND和在 CP2102復(fù)位期間會(huì)暫時(shí)處于高電平。為避免這種情況出現(xiàn),需要用一個(gè)l0kΩ的電阻來(lái)確保在復(fù)位期間保持在低電平。PCA82C250是CAN收發(fā)器,可增加總線驅(qū)動(dòng)能力,Rs端接地相連,系統(tǒng)處于高速工作方式。6N137是光電隔離芯片,CAN總線信號(hào)CANTX和CANRX從C8051F040 出來(lái)后先分別經(jīng)過(guò)高速光耦6N137進(jìn)行電氣隔離,再經(jīng)過(guò)CAN總線控制器接口芯片82C250驅(qū)動(dòng),然后接到CAN數(shù)據(jù)線上。6N137實(shí)現(xiàn)智能節(jié)點(diǎn)與 CAN總線之間的電氣隔離,不僅提高了節(jié)點(diǎn)的可靠性和系統(tǒng)的抗干擾能力,而且也保護(hù)了總線及總線上的其它節(jié)點(diǎn)??偩€兩端124Ω的電阻對(duì),防止通信信號(hào)傳輸?shù)綄?dǎo)線端點(diǎn)時(shí)發(fā)生反射。

 

圖3 適配卡的硬件設(shè)計(jì)

USB與CAN之間協(xié)議轉(zhuǎn)換的實(shí)現(xiàn)

設(shè)計(jì)在充分遵守USB和CAN協(xié)議的基礎(chǔ)上,實(shí)現(xiàn)了USB數(shù)據(jù)與CAN數(shù)據(jù)之間的協(xié)議轉(zhuǎn)換和轉(zhuǎn)發(fā)。在設(shè)計(jì)過(guò)程中,USB的高速率和CAN的低速率、USB的大數(shù)據(jù)包和CAN的小數(shù)據(jù)包之間存在著矛盾,必須認(rèn)真解決,否則可能會(huì)造成數(shù)據(jù)丟失,協(xié)議轉(zhuǎn)換不可靠,設(shè)備工作不穩(wěn)定。本設(shè)計(jì)中USB和 CAN都采用了接收中斷方式,將USB和CAN的數(shù)據(jù)包先存儲(chǔ)下來(lái),作為緩沖再進(jìn)一步處理。在中斷服務(wù)程序的數(shù)據(jù)接收時(shí),只有將數(shù)據(jù)準(zhǔn)確地收取下來(lái),才將接收緩沖區(qū)釋放,在此之前拒絕接收新的數(shù)據(jù)。在數(shù)據(jù)發(fā)送時(shí),先確認(rèn)發(fā)送緩沖區(qū)可用才寫入數(shù)據(jù)。由于兩端接口芯片都有內(nèi)部的發(fā)送和接收緩沖區(qū),主程序的主要任務(wù)就是完成數(shù)據(jù)的轉(zhuǎn)發(fā),以及提供通信同步的握手協(xié)議,防止數(shù)據(jù)丟失和順序錯(cuò)誤。

對(duì)于CAN總線傳輸速率,USB總線速率要高得多,128字節(jié)的緩沖區(qū)也比CAN總線芯片8字節(jié)緩沖區(qū)大得多,因此,向CAN接口發(fā)送數(shù)據(jù)需要完成拆包和重新打包的任務(wù),屬較慢操作,采用定時(shí)查詢式發(fā)送。CAN接收任務(wù)每次直接轉(zhuǎn)發(fā)CAN接口收到的8字節(jié)數(shù)據(jù)到USB接口發(fā)送緩沖區(qū),采用兩個(gè)信號(hào)量 (CAN-rcv,USB-wr)完成數(shù)據(jù)同步操作。數(shù)據(jù)轉(zhuǎn)發(fā)工作共有4個(gè)任務(wù)協(xié)調(diào)配合完成:[!--empirenews.page--]

(1) USB中斷后續(xù)處理任務(wù)

CP2102接收到數(shù)據(jù)或發(fā)送完成都會(huì)觸發(fā)中斷程序運(yùn)行。中斷處理程序只需要簡(jiǎn)單地通知此任務(wù)有中斷發(fā)生,以盡量減少中斷關(guān)閉的時(shí)間。因此,這個(gè)任務(wù)的優(yōu)先級(jí)最高,并且一旦開(kāi)始運(yùn)行不再等待其它事件,盡快處理完成。此任務(wù)根據(jù)USB接口的不同中斷原因,通知其他任務(wù)進(jìn)行后續(xù)的數(shù)據(jù)處理或轉(zhuǎn)發(fā)工作。

(2)控制端點(diǎn)信息處理任務(wù)

當(dāng)USB接口[5]接收到主機(jī)發(fā)來(lái)的USB協(xié)議信息時(shí),此任務(wù)得到通知。根據(jù)主機(jī)的要求,按照USB協(xié)議規(guī)范的數(shù)據(jù)格式對(duì)主機(jī)應(yīng)答。主要用于USB設(shè)備枚舉階段,與主機(jī)之間的信息交換。其它時(shí)間,此任務(wù)不占用處理器時(shí)間。

(3) CAN總線發(fā)送任務(wù)

當(dāng)USB接口有新的數(shù)據(jù)[6]要轉(zhuǎn)發(fā)到CAN總線時(shí),USB中斷后續(xù)處理任務(wù)通知此任務(wù)運(yùn)行。讀出USB芯片接收緩沖區(qū)中的數(shù)據(jù)到內(nèi)存緩沖區(qū),然后分解成小于等于8字節(jié)數(shù)據(jù)包,增加CAN總線協(xié)議數(shù)據(jù)包頭,送入C8051F040的發(fā)送緩沖區(qū)。微處理器的主要處理時(shí)間就是USB數(shù)據(jù)包的分解和重新打包發(fā)送。此任務(wù)占用處理器的時(shí)間最長(zhǎng)。CAN發(fā)送任務(wù)每次等待USB接收中斷觸發(fā)USB_ rd信號(hào)量后,開(kāi)始讀取CP2102接收緩沖區(qū)數(shù)據(jù)到內(nèi)存數(shù)組Ep2out_ Buf[128],然后采用查詢式發(fā)送方式,將數(shù)據(jù)送到C8051F040的發(fā)送緩沖區(qū),每次8字節(jié)。在查詢過(guò)程中,如果C8051F040處于正在發(fā)送中,將任務(wù)休眠3個(gè)時(shí)鐘嘀嗒<5ms),然后再次查詢,避免長(zhǎng)時(shí)間占用處理器。

(4) CAN總線接收任務(wù)

當(dāng)CAN總線接收[6]到數(shù)據(jù)后,由于數(shù)據(jù)包最多只有8個(gè)字節(jié),因此可以一次放入U(xiǎn)SB接口芯片發(fā)送緩沖區(qū),由主機(jī)讀取。此任務(wù)很少占用處理器時(shí)間。主要是為了協(xié)調(diào)CAN總線與USB總線之間數(shù)據(jù)轉(zhuǎn)發(fā)的同步,使數(shù)據(jù)包按照原來(lái)的順序接收到,并且不覆蓋尚未發(fā)送的上一個(gè)數(shù)據(jù)包,避免數(shù)據(jù)丟失。 CAN接收中斷首先讀C8051F040中斷寄存器,清除中斷標(biāo)志。然后觸發(fā)CAN-rcv信號(hào)量,使CAN接收任務(wù)得以運(yùn)行。CAN接收任務(wù)然后等待 USB發(fā)送完成中斷觸發(fā)USB-wr信號(hào)量,表示USB接口可以發(fā)送新的數(shù)據(jù)。由于USB接口緩沖區(qū)較大,并且發(fā)送速度快,CAN接收任務(wù)直接將CAN接收到的數(shù)據(jù),送入U(xiǎn)SB接口芯片CP2012的發(fā)送緩沖區(qū)。然后打開(kāi)CAN接收中斷。

結(jié)語(yǔ)

設(shè)計(jì)在充分遵守USB和CAN協(xié)議的基礎(chǔ)上,USB和CAN都采用了接收中斷方式,通過(guò)通信同步的握手協(xié)議,實(shí)現(xiàn)了USB數(shù)據(jù)與CAN數(shù)據(jù)之間的協(xié)議轉(zhuǎn)換和轉(zhuǎn)發(fā),很好的解決了USB的高速率和CAN的低速率、USB的大數(shù)據(jù)包與CAN的小數(shù)據(jù)包之間的矛盾,能夠保證數(shù)據(jù)完整,協(xié)議的可靠轉(zhuǎn)換。使 CAN的專業(yè)化操作和實(shí)踐通過(guò)USB變得更加靈活方便。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉