一種以太網(wǎng)-CAN轉(zhuǎn)換電路設(shè)計與實現(xiàn)
出處:車 行,郭建洲 中國電子科技集團 發(fā)布于:2011-08-25 11:45:23
控制器局域網(wǎng)(Controller Area Network,CAN)總線是ISO 國際標準化的串行通信協(xié)議。在當前的汽車產(chǎn)業(yè)中,出于對安全性、舒適性、方便性、低公害、 低成本的要求,各種各樣的電子控制系統(tǒng)被開發(fā)了出來。由于這些系統(tǒng)之間通信所用 的數(shù)據(jù)類型及對可靠性的要求不盡相同,由多條總線構(gòu)成的情況很多,線束的數(shù)量也 隨之增加。為適應“減少線束的數(shù)量”、“通過多個 LAN,進行大量數(shù)據(jù)的高速通信”的需要,1986年德國電氣商博世公司開發(fā)出面向汽車的 CAN 通信議。此后,CAN 通過 ISO11898 及 ISO11519 進行了標準化,現(xiàn)在在歐洲已是汽車網(wǎng)絡(luò)的標準協(xié)議。現(xiàn)在,CAN 的高性能和可靠性已被認同,并被廣泛地應用于工業(yè)自動化、船舶、醫(yī)療設(shè)備、工業(yè)設(shè)備等方面?,F(xiàn)場總線是當今自動化領(lǐng)域技術(shù)發(fā)展的熱點之一,被譽 為自動化領(lǐng)域的計算機局域網(wǎng)。它的出現(xiàn)為分布式控制系統(tǒng)實現(xiàn)各節(jié)點之間實時、可靠的數(shù)據(jù)通信提供了強有力的技術(shù)支持以太網(wǎng)接口開始是為了連接實驗室的多個計算機設(shè)備,開發(fā)的快速連接方式。隨著傳輸速率的提高和交換技術(shù)的使用,以太網(wǎng)的確定性和實時性得到了保證,工業(yè)以太網(wǎng)的安全性和網(wǎng)絡(luò)生存性也得到了很大程度的提高。使其在工業(yè)控制領(lǐng)域得到廣泛的應用。目前計算機已經(jīng)廣泛應用與各個操控領(lǐng)域,而計算機常用的連接端口就是以太網(wǎng),只要接口標準統(tǒng)一,并安裝好必要的軟件,計算機就可以介入到各個控制系統(tǒng)中去。因此,為了提高效率,有必要采用技術(shù)手段,實現(xiàn)通過以太網(wǎng)接口使計算機融入CAN網(wǎng)絡(luò),把以太網(wǎng)的遠距離傳輸性與CAN的性結(jié)合起來,優(yōu)勢組合。
以太網(wǎng)早由Xerox(施樂)公司創(chuàng)建,在1980年,DEC、lntel和Xerox三家公司聯(lián)合開發(fā)成為一個標準。以太網(wǎng)是應用為廣泛的局域網(wǎng),包括標準的以太網(wǎng)(10Mbit/s)、快速以太網(wǎng)(100Mbit/s)和10G(10Gbit/s)以太網(wǎng),采用的是CSMA/CD訪問控制法,它們都符合IEEE802.3。該標準定義了在局域網(wǎng)(LAN)中采用的電纜類型和信號處理方法。以太網(wǎng)在互聯(lián)設(shè)備之間以10~100Mbps的速率傳送信息包,雙絞線電纜10 Base T以太網(wǎng)由于其低成本、高可靠性以及10Mbps的速率而成為應用為廣泛的以太網(wǎng)技術(shù)。直擴的無線以太網(wǎng)可達11Mbps,許多制造供應商提供的產(chǎn)品都能采用通用的軟件協(xié)議進行通信,開放性。
1 芯片選擇
1.1 CP2200芯片介紹
CP2200芯片是工業(yè)界體積、性能、8位總線控制的以太網(wǎng)驅(qū)動芯片,支持IEEE802·3以太網(wǎng)媒體訪問MAC控制協(xié)議,支持10BASE/T物理層,完全兼容100/1 000 BASE T網(wǎng)絡(luò),可以工作在全雙工或半雙工模式,能進行自動極性檢測和糾正,具有碰撞自動重發(fā)功能,能自動填充和生成CRC,支持廣播和多播。CP2200內(nèi)部帶有2 k字節(jié)的發(fā)送緩存和4 k字節(jié)的接收緩存,還有8 k字節(jié)的內(nèi)部Flash存儲器,用于存儲用戶常數(shù)、Web服務器內(nèi)容,它的6個存儲單元是工廠預編程的48位MAC地址。此芯片采用48管腳的TQFP封裝,工作的溫度范圍在-40~+85℃,可為具有11個以上I/O引腳的微處理器擴展以太網(wǎng)通信功能。此芯片具有30 Mb/s速率的并行主機接口,支持Intel和Motorola兩種總線方式。
CP2200符合IEEE 802.3協(xié)議:內(nèi)置lOMbps以太網(wǎng)物理層器件PHY及媒介接入控制器MAC,可按業(yè)界標準的以太網(wǎng)協(xié)議可靠地收發(fā)信息包數(shù)據(jù);具有可編程填充和CRC自動生成功能??删幊踢^濾功能:特殊的過濾器,可自動評價、接收或拒收Magic Packet、單播(Unicast)、多播(Multicast)或廣播(Broadcast)信息包,以減輕主控單片機的處理負荷。30 Mbp5速率的并行主機接口:支持Intel和M0torola兩種總線方式。8 KB Flash存儲器:8192字節(jié)非易失性數(shù)據(jù)存儲空間,可對其進行靈活編程;工廠預編程的48位MAC地址。
CP2200的多種集成功能(如CRC校驗、數(shù)據(jù)濾波等)有效減輕了單片機的載荷,它內(nèi)部的收發(fā)接口單元操作起來靈活方便,為以太網(wǎng)數(shù)據(jù)包提供了有效緩沖。使用該芯片時,電路只需增加1個RJ-45快速以太網(wǎng)接口即可,其工作特性可以滿足CAN總線的傳輸波特率要求。其內(nèi)部結(jié)構(gòu)如圖1所示。

1.2 C8051F040芯片介紹
C8051F040是集成在一塊芯片上的混合信號系統(tǒng)級單片機,在一個芯片內(nèi)集成了構(gòu)成一個單片機數(shù)據(jù)采集或控制的智能節(jié)點所需要的幾乎所有模擬和數(shù)字外設(shè)以及其他功能部件,代表了目前8位單片機控制系統(tǒng)的發(fā)展方向。芯片上有1個12位多通道ADC,2個12位DAC,2個電壓比較器,1個電壓基準,1個32kB的FLASH存儲器,與MCS-51指令集完全兼容的高速CIP-51內(nèi)核,峰值速度可達25MIPS,并且還有硬件實現(xiàn)的UART串行接口和完全支持CAN2.0A和CAN2.0B的CAN控制器。C8051F040是高度集成的混合信號SoC級微控制器芯片,具有與8051單片機兼容的高速CIP-51微控制器內(nèi)核,除了標準8051的數(shù)字外設(shè)部件外,片內(nèi)還集成了數(shù)據(jù)采集與控制系統(tǒng)中常用的模擬部件及其它一些數(shù)字外設(shè)部件。
C8051F系列單片機是Silicon Labs公司推出的系統(tǒng)級芯片,具有與80C51兼容的CIP-51內(nèi)核。C8051F040內(nèi)部集成的CAN控制器包括1個CAN內(nèi)核、消息RAM(獨立于CIP-51內(nèi)核)、消息處理單元、控制寄存器等。C8051F040內(nèi)部包含1個CAN協(xié)議控制器,并沒有提供物理層的驅(qū)動器,實現(xiàn)與CAN總線的接口。數(shù)據(jù)接收和濾波都由CAN控制器完成,不需要CIP-51內(nèi)核的參與。這種方式可使CAN通信時占用的系統(tǒng)資源。CIP-51內(nèi)核通過配置其內(nèi)部的特殊功能寄存器來實現(xiàn)CAN的數(shù)據(jù)交互。其內(nèi)部結(jié)構(gòu)如圖2所示。
2 系統(tǒng)硬件設(shè)計
系統(tǒng)電路如圖3所示,由CP2200、C8051F040、CAN驅(qū)動芯片的SN65HVD230等組成。其中CP2200與HR911105A組成以太網(wǎng)電路部分,SN65H-VD230單個組成CAN收發(fā)電路。工作原理如下,當CP2200收到以太網(wǎng)數(shù)據(jù)時,觸發(fā)C8051F040的INTO,C8051F040把數(shù)據(jù)從CP2200的接收緩沖區(qū)拷貝到其內(nèi)存空間,然后通過SN65HVD230轉(zhuǎn)發(fā)到CAN網(wǎng)絡(luò);當CAN數(shù)據(jù)有要發(fā)送到以太網(wǎng),C8051F040收到數(shù)據(jù)后,就向CP2200的發(fā)送緩沖區(qū)轉(zhuǎn)發(fā)數(shù)據(jù),由CP2200通過HR911105A發(fā)到以太網(wǎng)。

2.1 以太網(wǎng)部分電路
CP2200通過HR9011105A連接到以太網(wǎng)上。CP2200的收發(fā)信號分別連接到HR9011105A的收發(fā)針腳,同時前者的LED控制信號LINK、ACK也都接到后者相應針腳。其中,LINK是連接成功指示燈,ACK是數(shù)據(jù)傳輸指示燈。CP2200與C8051F040的連接,首先數(shù)據(jù)和地址總線、讀寫信號相連接,其次CP2200的中斷引腳INT與C8051-F040的INT0引腳連接在一起,其片選CS陣腳接C8051F040的A15腳。CP2200的發(fā)送緩沖區(qū)地址為0x0000~0x07FF,接收緩沖區(qū)地址前部分與發(fā)送緩沖器重合,具體地址為0x0000~0x0FFF。當A15為低電平(CS也為低)時,C8051F040就選中CP2200,即CP2200的內(nèi)部地址空間0x0000~0x0 FFF的外部映射地址為0x8000~0x8FFF。
CP2200發(fā)送數(shù)據(jù)包:通過使用自動寫(AutoWrite)寄存器將數(shù)據(jù)裝載到發(fā)送緩沖區(qū),并向內(nèi)部存儲器TXGO寫1來發(fā)送數(shù)據(jù)包。一旦發(fā)送完成,會產(chǎn)生數(shù)據(jù)包已發(fā)送中斷,通知C8051F040。CP2200接收數(shù)據(jù)包:當MAC接收被使能且接收緩沖區(qū)未滿時,包接收會自動進行。一旦收到數(shù)據(jù)包,就會產(chǎn)生包接收中斷通知主機。主機可以用自動讀(AutoRead)接口讀取數(shù)據(jù)包。
2.2 CAN部分電路
C8051F040已經(jīng)集成CAN控制器,電路只需1個CAN總線收發(fā)器。這里使用TI公司的SN65HVD230收發(fā)器。由于SN65HV230收發(fā)器具有強電磁干擾下寬共模電壓范圍的差動接收能力、交叉線保護、過熱保護、失地保護、過壓保護等卓越特性,所以設(shè)計中省去了高速光耦6N137以簡化電路設(shè)計,如果需要增強抗干擾能力,也可在C8051F040和SN65HV230之間增加2個高速光耦6N137,以滿足CAN的高速率通信。在CANH與CANL引腳各串聯(lián)1個5 Ω電阻與總線相連以起到限流作用。
3 軟件設(shè)計及協(xié)議轉(zhuǎn)換
在充分遵循以太網(wǎng)和CAN協(xié)議的基礎(chǔ)上,設(shè)計軟件程序,實現(xiàn)以太網(wǎng)數(shù)據(jù)與CAN數(shù)據(jù)之間的協(xié)議轉(zhuǎn)換與轉(zhuǎn)發(fā)。在本設(shè)計中,CAN與以太網(wǎng)都采用接收中斷,把數(shù)據(jù)包先存入緩沖區(qū),然后進一步分析數(shù)據(jù)。在數(shù)據(jù)接收時,不允許接收新的數(shù)據(jù)和中斷,直到數(shù)據(jù)完全接收后,才將接收緩沖區(qū)釋放。在數(shù)據(jù)發(fā)送時,先確認發(fā)送緩沖區(qū)空閑才寫入數(shù)據(jù)。由于兩者都有內(nèi)部的發(fā)送和接收緩沖區(qū),主程序的主要任務就是實現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā)以及通訊的握手協(xié)議。
相對于CAN總線的傳輸速率,本電路的以太網(wǎng)傳輸速率要高10倍,緩沖區(qū)大小也差很多。因此在下行通訊中,需要完成CAN數(shù)據(jù)的拆包和重新打包任務,屬較慢的操作,采用定時查詢方式發(fā)送。在上行通訊中,直接轉(zhuǎn)發(fā)CAN接收到CP2200發(fā)送緩沖區(qū)。
3.1 CAN總線程序
1)CAN總線發(fā)送任務 當以太網(wǎng)有新的數(shù)據(jù)轉(zhuǎn)發(fā)給CAN時,主程序通知此任務運行。讀出CP2200接收緩沖區(qū)中的數(shù)據(jù)到內(nèi)存緩沖區(qū),然后分成不大于8字節(jié)的數(shù)據(jù)包,增加CAN協(xié)議包頭,送入C8051F040的發(fā)送緩沖區(qū)。
2)CAN總線接收任務 當CAN有數(shù)據(jù)接收,則將數(shù)據(jù)直接送人CP2200的發(fā)送緩沖區(qū),并通知其工作。此任務很少占用時間。在轉(zhuǎn)發(fā)過程中,由于CAN每次數(shù)據(jù)只有8字節(jié),而CP2200的發(fā)送緩沖區(qū)有2 K,CP2200的發(fā)送不影響CAN的接收。所以CAN接收中斷只需在本程序?qū)AN數(shù)據(jù)送入CP2200的發(fā)送緩沖區(qū)后就可打開。
3.2 以太網(wǎng)程序模塊
以太網(wǎng)接口模塊主要實現(xiàn)CP2200的驅(qū)動函數(shù),主要包括初始化函數(shù)、幀發(fā)送函數(shù)和幀接收函數(shù)。
1)CP2200的初始化模塊 CP2200的初始化是進行CP2200寄存器的配置。CP2200占用C8051F040的外部RAM的地址,外部存儲器接口(EMIF)被設(shè)置在高端口(端口47),EMIFLE(XBR2·1)位被設(shè)置為0。然后依次進行下面的設(shè)置:配置端口引腳的輸出方式為推挽方式;配置對應EMIF引腳的端口鎖存器為休眠態(tài),設(shè)置為邏輯‘1’;選擇地址線和數(shù)據(jù)線的非復用方式;選擇存儲器模式為不帶塊選擇的分片方式:設(shè)置與片外存儲器或外設(shè)接口的時序。
2)以太網(wǎng)數(shù)據(jù)的發(fā)送接收模塊 C8051F040的外部中斷0和定時器0用于TCP/IP協(xié)議棧。由于C8051F040的處理速度、內(nèi)部集成的資源有限,而TCP/IP協(xié)議種類繁多,不可能集成所有的TEP/IP協(xié)議,所以,使用裁剪后的TCP/IP協(xié)議。結(jié)合項目的實際需要,本設(shè)計中裁剪后的協(xié)議棧包括IP協(xié)議、ARP協(xié)議、ICMP協(xié)議、TCP協(xié)議。由于TCP協(xié)議是基于連接的協(xié)議,在正式收發(fā)數(shù)據(jù)前,必須和對方經(jīng)過3次對話,建立可靠的連接,而且當數(shù)據(jù)從A端傳到B端后,B端會發(fā)送一個確認包給A端,所以,TCP協(xié)議適用于對可靠性要求較高的數(shù)據(jù)通信系統(tǒng)。而UDP協(xié)議是面向非連接的協(xié)議,不與對方建立連接,直接就把數(shù)據(jù)包發(fā)送過去,當數(shù)據(jù)從A端傳到B端后,B端不會發(fā)送一個確認包給A端,此協(xié)議適用于對可靠性要求不高的通信系統(tǒng)。由于該系統(tǒng)應用于在線數(shù)字識別系統(tǒng),可靠性要求高,所以,該系統(tǒng)采用了TCP協(xié)議。
4 結(jié)束語
本文描述了一種CAN數(shù)據(jù)與以太網(wǎng)數(shù)據(jù)轉(zhuǎn)換器的設(shè)計原理與電路構(gòu)成。創(chuàng)新點在于:電路設(shè)計使用高度集成化的網(wǎng)絡(luò)接口芯片CP2200和集成CAN控制器的C8051F040,在不降低效率的同時,有效地節(jié)省空間與資源。在遵循CAN與以太網(wǎng)協(xié)議的基礎(chǔ)上,通過通訊的握手協(xié)議和簡化的以太網(wǎng)協(xié)議,實現(xiàn)了以太網(wǎng)數(shù)據(jù)與CAN數(shù)據(jù)的轉(zhuǎn)發(fā),順利地解決了以太網(wǎng)的高速性與CAN的低速率,以及兩者數(shù)據(jù)包之間的大小矛盾,能夠保證數(shù)據(jù)的完整和協(xié)議的可靠。本轉(zhuǎn)換器可廣泛應用于廠礦、油田等監(jiān)控設(shè)施的改進。
版權(quán)與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 數(shù)字電源控制與傳統(tǒng)模擬控制的深度對比2026/2/2 11:06:56
- 模擬信號調(diào)理電路技術(shù)設(shè)計與選型運維指南2025/12/30 10:08:16
- 運算放大器壓擺率的核心要點2025/9/5 16:27:55
- 深度剖析放大器穩(wěn)定系數(shù) K 與 Mu 的差異2025/9/2 16:44:05
- 什么是運算放大器失調(diào)電流2025/9/1 17:01:22









