在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            關(guān) 閉

            新聞中心

            EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于C8051F040的以太網(wǎng)-CAN轉(zhuǎn)換電路設(shè)計(jì)

            基于C8051F040的以太網(wǎng)-CAN轉(zhuǎn)換電路設(shè)計(jì)

            作者: 時(shí)間:2011-03-18 來(lái)源:網(wǎng)絡(luò) 收藏

            2 系統(tǒng)硬件設(shè)計(jì)
            系統(tǒng)電路如圖3所示,由CP2200、、CAN驅(qū)動(dòng)芯片的SN65HVD230等組成。其中CP2200與HR911105A組成電路部分,SN65H-VD230單個(gè)組成CAN收發(fā)電路。工作原理如下,當(dāng)CP2200收到數(shù)據(jù)時(shí),觸發(fā)的INTO,把數(shù)據(jù)從CP2200的接收緩沖區(qū)拷貝到其內(nèi)存空間,然后通過(guò)SN65HVD230轉(zhuǎn)發(fā)到CAN網(wǎng)絡(luò);當(dāng)CAN數(shù)據(jù)有要發(fā)送到,C8051F040收到數(shù)據(jù)后,就向CP2200的發(fā)送緩沖區(qū)轉(zhuǎn)發(fā)數(shù)據(jù),最后由CP2200通過(guò)HR911105A發(fā)到以太網(wǎng)。

            2.JPG


            2.1 以太網(wǎng)部分電路
            CP2200通過(guò)HR9011105A連接到以太網(wǎng)上。HR9011105A是HanRun公司生產(chǎn)的集以太網(wǎng)隔離變壓器、RJ-45接口和指示燈為一體的網(wǎng)絡(luò)連接器。CP2200的收發(fā)信號(hào)分別連接到HR9011105A的收發(fā)針腳,同時(shí)前者的LED控制信號(hào)LINK、ACK也都接到后者相應(yīng)針腳。其中,LINK是連接成功指示燈,ACK是數(shù)據(jù)傳輸指示燈。CP2200與C8051F040的連接,首先數(shù)據(jù)和地址總線、讀寫信號(hào)相連接,其次CP2200的中斷引腳INT與C8051-F040的INT0引腳連接在一起,其片選CS陣腳接C8051F040的A15腳。CP2200的發(fā)送緩沖區(qū)地址為0x0000~0x07FF,接收緩沖區(qū)地址前部分與發(fā)送緩沖器重合,具體地址為0x0000~0x0FFF。當(dāng)A15為低電平(CS也為低)時(shí),C8051F040就選中CP2200,即CP2200的內(nèi)部地址空間0x0000~0x0 FFF的外部映射地址為0x8000~0x8FFF。
            CP2200發(fā)送數(shù)據(jù)包:通過(guò)使用自動(dòng)寫(AutoWrite)寄存器將數(shù)據(jù)裝載到發(fā)送緩沖區(qū),并向內(nèi)部存儲(chǔ)器TXGO寫1來(lái)發(fā)送數(shù)據(jù)包。一旦發(fā)送完成,會(huì)產(chǎn)生數(shù)據(jù)包已發(fā)送中斷,通知C8051F040。CP2200接收數(shù)據(jù)包:當(dāng)MAC接收被使能且接收緩沖區(qū)未滿時(shí),包接收會(huì)自動(dòng)進(jìn)行。一旦收到數(shù)據(jù)包,就會(huì)產(chǎn)生包接收中斷通知主機(jī)。主機(jī)可以用自動(dòng)讀(AutoRead)接口讀取數(shù)據(jù)包。
            2.2 CAN部分電路
            C8051F040已經(jīng)集成CAN控制器,電路只需1個(gè)CAN總線收發(fā)器。這里使用TI公司的SN65HVD230收發(fā)器。由于SN65HV230收發(fā)器具有強(qiáng)電磁干擾下寬共模電壓范圍的差動(dòng)接收能力、交叉線保護(hù)、過(guò)熱保護(hù)、失地保護(hù)、過(guò)壓保護(hù)等卓越特性,所以設(shè)計(jì)中省去了高速光耦6N137以簡(jiǎn)化,如果需要增強(qiáng)抗干擾能力,也可在C8051F040和SN65HV230之間增加2個(gè)高速光耦6N137,以滿足CAN的高速率通信。在CANH與CANL引腳各串聯(lián)1個(gè)5 Ω電阻與總線相連以起到限流作用。

            3 軟件設(shè)計(jì)及協(xié)議
            在充分遵循以太網(wǎng)和CAN協(xié)議的基礎(chǔ)上,設(shè)計(jì)軟件程序,實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)與CAN數(shù)據(jù)之間的協(xié)議與轉(zhuǎn)發(fā)。在本設(shè)計(jì)中,CAN與以太網(wǎng)都采用接收中斷,把數(shù)據(jù)包先存入緩沖區(qū),然后進(jìn)一步分析數(shù)據(jù)。在數(shù)據(jù)接收時(shí),不允許接收新的數(shù)據(jù)和中斷,直到數(shù)據(jù)完全接收后,才將接收緩沖區(qū)釋放。在數(shù)據(jù)發(fā)送時(shí),先確認(rèn)發(fā)送緩沖區(qū)空閑才寫入數(shù)據(jù)。由于兩者都有內(nèi)部的發(fā)送和接收緩沖區(qū),主程序的主要任務(wù)就是實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā)以及通訊的握手協(xié)議。若定義,由CAN數(shù)據(jù)轉(zhuǎn)發(fā)為以太網(wǎng)數(shù)據(jù),稱為上行通訊;由以太網(wǎng)數(shù)據(jù)轉(zhuǎn)發(fā)為CAN數(shù)據(jù),稱為下行通訊。
            相對(duì)于CAN總線的傳輸速率,本電路的以太網(wǎng)傳輸速率要高10倍,緩沖區(qū)大小也差很多。因此在下行通訊中,需要完成CAN數(shù)據(jù)的拆包和重新打包任務(wù),屬較慢的操作,采用定時(shí)查詢方式發(fā)送。在上行通訊中,直接轉(zhuǎn)發(fā)CAN接收到CP2200發(fā)送緩沖區(qū)。
            3.1 CAN總線程序
            1)CAN總線發(fā)送任務(wù) 當(dāng)以太網(wǎng)有新的數(shù)據(jù)轉(zhuǎn)發(fā)給CAN時(shí),主程序通知此任務(wù)運(yùn)行。讀出CP2200接收緩沖區(qū)中的數(shù)據(jù)到內(nèi)存緩沖區(qū),然后分成不大于8字節(jié)的數(shù)據(jù)包,增加CAN協(xié)議包頭,送入C8051F040的發(fā)送緩沖區(qū)。
            此任務(wù)耗時(shí)最長(zhǎng)。CAN發(fā)送任務(wù)收到主程序的運(yùn)行通知,開(kāi)始讀取CP2200的接收緩沖區(qū)數(shù)據(jù)到內(nèi)存,然后采用查詢發(fā)送方式,把數(shù)發(fā)送到C8051F040的發(fā)送緩沖區(qū)。在查詢過(guò)程中,如果C8051F040正處于發(fā)送中,將任務(wù)等待10 ms,然后再查詢一次,直到發(fā)送成功。
            2)CAN總線接收任務(wù) 當(dāng)CAN有數(shù)據(jù)接收,則將數(shù)據(jù)直接送人CP2200的發(fā)送緩沖區(qū),并通知其工作。此任務(wù)很少占用時(shí)間。在轉(zhuǎn)發(fā)過(guò)程中,由于CAN每次數(shù)據(jù)只有8字節(jié),而CP2200的發(fā)送緩沖區(qū)有2 K,CP2200的發(fā)送不影響CAN的接收。所以CAN接收中斷只需在本程序?qū)AN數(shù)據(jù)送入CP2200的發(fā)送緩沖區(qū)后就可打開(kāi)。
            3.2 以太網(wǎng)程序模塊
            以太網(wǎng)接口模塊主要實(shí)現(xiàn)CP2200的驅(qū)動(dòng)函數(shù),主要包括初始化函數(shù)、幀發(fā)送函數(shù)和幀接收函數(shù)。
            1)CP2200的初始化模塊 CP2200的初始化是進(jìn)行CP2200寄存器的配置。CP2200占用C8051F040的外部RAM的地址,外部存儲(chǔ)器接口(EMIF)被設(shè)置在高端口(端口47),EMIFLE(XBR2·1)位被設(shè)置為0。然后依次進(jìn)行下面的設(shè)置:配置端口引腳的輸出方式為推挽方式;配置對(duì)應(yīng)EMIF引腳的端口鎖存器為休眠態(tài),設(shè)置為邏輯‘1’;選擇地址線和數(shù)據(jù)線的非復(fù)用方式;選擇存儲(chǔ)器模式為不帶塊選擇的分片方式:設(shè)置與片外存儲(chǔ)器或外設(shè)接口的時(shí)序。初始化時(shí)按以下步驟進(jìn)行:等待復(fù)位引腳電平升高;MCU通過(guò)中斷請(qǐng)求信號(hào)得到振蕩器是否完成初始化;MCU查詢INT0來(lái)確定CP2200自身的初始化是否完成;禁止那些主處理器不監(jiān)視或不處理的事件的中斷;初始化物理層;用IOPWR寄存器使能所需要的活動(dòng)(Ack)、連接(Link)LED;初始化媒體訪問(wèn)控制器(MAC);配置接收過(guò)濾器。
            2)以太網(wǎng)數(shù)據(jù)的發(fā)送接收模塊 C8051F040的外部中斷0和定時(shí)器0用于TCP/IP協(xié)議棧。由于C8051F040的處理速度、內(nèi)部集成的資源有限,而TCP/IP協(xié)議種類繁多,不可能集成所有的TEP/IP協(xié)議,所以,使用裁剪后的TCP/IP協(xié)議。結(jié)合項(xiàng)目的實(shí)際需要,本設(shè)計(jì)中裁剪后的協(xié)議棧包括IP協(xié)議、ARP協(xié)議、ICMP協(xié)議、TCP協(xié)議。由于TCP協(xié)議是連接的協(xié)議,在正式收發(fā)數(shù)據(jù)前,必須和對(duì)方經(jīng)過(guò)3次對(duì)話,建立可靠的連接,而且當(dāng)數(shù)據(jù)從A端傳到B端后,B端會(huì)發(fā)送一個(gè)確認(rèn)包給A端,所以,TCP協(xié)議適用于對(duì)可靠性要求較高的數(shù)據(jù)通信系統(tǒng)。而UDP協(xié)議是面向非連接的協(xié)議,不與對(duì)方建立連接,直接就把數(shù)據(jù)包發(fā)送過(guò)去,當(dāng)數(shù)據(jù)從A端傳到B端后,B端不會(huì)發(fā)送一個(gè)確認(rèn)包給A端,此協(xié)議適用于對(duì)可靠性要求不高的通信系統(tǒng)。由于該系統(tǒng)應(yīng)用于在線數(shù)字識(shí)別系統(tǒng),可靠性要求高,所以,該系統(tǒng)采用了TCP協(xié)議。

            4 結(jié)束語(yǔ)
            本文描述了一種CAN數(shù)據(jù)與以太網(wǎng)數(shù)據(jù)器的設(shè)計(jì)原理與電路構(gòu)成。創(chuàng)新點(diǎn)在于:使用高度集成化的網(wǎng)絡(luò)接口芯片CP2200和集成CAN控制器的C8051F040,在不降低效率的同時(shí),有效地節(jié)省空間與資源。在遵循CAN與以太網(wǎng)協(xié)議的基礎(chǔ)上,通過(guò)通訊的握手協(xié)議和簡(jiǎn)化的以太網(wǎng)協(xié)議,實(shí)現(xiàn)了以太網(wǎng)數(shù)據(jù)與CAN數(shù)據(jù)的轉(zhuǎn)發(fā),順利地解決了以太網(wǎng)的高速性與CAN的低速率,以及兩者數(shù)據(jù)包之間的大小矛盾,能夠保證數(shù)據(jù)的完整和協(xié)議的可靠。本轉(zhuǎn)換器可廣泛應(yīng)用于廠礦、油田等監(jiān)控設(shè)施的改進(jìn)。


            上一頁(yè) 1 2 下一頁(yè)

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉