• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    CAN總線與Zigbee無線網(wǎng)絡(luò)網(wǎng)關(guān)的設(shè)計與實現(xiàn)

    2022-02-17 00:29:53郭琪
    電腦知識與技術(shù) 2022年35期
    關(guān)鍵詞:CAN總線數(shù)據(jù)傳輸網(wǎng)關(guān)

    郭琪

    摘要:該文深入分析了CAN總線技術(shù)和ZigBee網(wǎng)絡(luò)技術(shù)的技術(shù)特點,采用C8051F043和CC2430的雙MCU結(jié)構(gòu)設(shè)計了CAN/ZigBee網(wǎng)關(guān),使得 CAN總線和ZigBee網(wǎng)絡(luò)實現(xiàn)了并行交互數(shù)據(jù)的功能。CAN/ZigBee網(wǎng)關(guān)具有兩個接口模塊。CAN總線數(shù)據(jù)通訊使用C語言進(jìn)行編程,完成通訊數(shù)據(jù)的發(fā)送和接收功能。ZigBee網(wǎng)絡(luò)接口模塊的軟件開發(fā)以ZigBee協(xié)議棧為基礎(chǔ)。根據(jù)ZigBee的技術(shù)特點,軟件編寫時設(shè)計了地址映射表,以解決ZigBee節(jié)點地址動態(tài)分配給通信帶來的問題并設(shè)計了緩沖區(qū)以保證在兩個不同傳輸速率的網(wǎng)絡(luò)之間進(jìn)行數(shù)據(jù)傳輸。ZigBee網(wǎng)絡(luò)接口模塊的應(yīng)用程序完成了ZigBee網(wǎng)絡(luò)內(nèi)數(shù)據(jù)收發(fā)、SPI接口通信以及地址映射表的建立和管理。通過驗證,該文設(shè)計的網(wǎng)關(guān)實現(xiàn)了CAN總線與ZigBee無線網(wǎng)絡(luò)之間的雙向數(shù)據(jù)傳輸,并且數(shù)據(jù)傳輸不受ZigBee節(jié)點地址動態(tài)分配的影響。

    關(guān)鍵詞:CAN總線;ZigBee;網(wǎng)關(guān);數(shù)據(jù)傳輸;節(jié)點地址

    中圖分類號:TP393? ? ? ? 文獻(xiàn)標(biāo)識碼:A

    文章編號:1009-3044(2022)35-0078-03

    1 概述

    CAN總線具有非常廣泛的應(yīng)用范圍,具有效率高、可靠性強的特點。CAN總線通信采用數(shù)字信號代替了模擬信號,不僅節(jié)約了連線電纜的成本,而且可以傳遞更多的設(shè)備信息,如設(shè)備狀態(tài)、運行參數(shù)、故障信息等。本文設(shè)計的CAN/ZigBee網(wǎng)關(guān)能夠完成CAN總線和ZigBee網(wǎng)絡(luò)收發(fā)通信, CAN總線實現(xiàn)無線通訊的設(shè)計目標(biāo)。在CAN總線應(yīng)用最為廣泛的汽車電子領(lǐng)域,ZigBee技術(shù)的接入可以實現(xiàn)對轉(zhuǎn)動機械或發(fā)動機內(nèi)部的數(shù)據(jù)監(jiān)測,如汽車的輪胎壓力檢測等[1]。針對工業(yè)控制領(lǐng)域,CAN總線也有CANopen和DeviceNet兩個應(yīng)用層協(xié)議并有廣泛的實際應(yīng)用,ZigBee技術(shù)的引入同樣會為其在特殊情況下的應(yīng)用帶來方便。一個高效可靠的CAN/ZigBee網(wǎng)關(guān)能夠彌補CAN總線的通訊限制,增加ZigBee無線網(wǎng)絡(luò)通訊的有效性,為我們的生產(chǎn)、生活帶來更多的便利[2]。

    2 CAN/ZigBee網(wǎng)關(guān)硬件設(shè)計方案

    本文設(shè)計的CAN與ZigBee網(wǎng)關(guān)采用的是CC2430和C8051F043的雙MCU結(jié)構(gòu),分別作為CAN協(xié)議和ZigBee協(xié)議的控制芯片,將兩個網(wǎng)絡(luò)的數(shù)據(jù)收發(fā)以及數(shù)據(jù)處理等操作分開進(jìn)行[3]。CAN與ZigBee網(wǎng)關(guān)的數(shù)據(jù)通訊采用雙向并行模式,應(yīng)用兩個單片機完成數(shù)據(jù)交互總體結(jié)構(gòu),網(wǎng)關(guān)由CAN總線和ZigBee接口模塊組成。CAN與ZigBee網(wǎng)關(guān)結(jié)構(gòu)如圖1所示。

    CAN總線網(wǎng)絡(luò)接口模塊主要完成CAN總線數(shù)據(jù)的收發(fā),并與ZigBee網(wǎng)絡(luò)接口模塊實現(xiàn)雙向通信。該模塊選用的片上系統(tǒng)單片機C8051F043內(nèi)部集成了Bosch CAN2.0B控制器,構(gòu)成一個CAN總線節(jié)點,實現(xiàn)對總線數(shù)據(jù)的收發(fā),單片機C8051F043負(fù)責(zé)接收和發(fā)送數(shù)據(jù),由芯片TJA1050作為接口,同時該單片機還有晶振電路、電源電路、人機接口電路、USB接口擴(kuò)展電路和JTAG接口電路。USB接口的擴(kuò)展選用USB轉(zhuǎn)RS-232橋接芯片CP2102實現(xiàn),該接口可用于與上位機進(jìn)行通信,方便后期開發(fā)過程中對網(wǎng)關(guān)軟件進(jìn)行調(diào)試。JTAG接口的擴(kuò)展是為了后期的軟件調(diào)試[4]。

    ZigBee網(wǎng)絡(luò)接口模塊的主要功能包括ZigBee網(wǎng)絡(luò)內(nèi)數(shù)據(jù)的收發(fā)以及與CAN網(wǎng)絡(luò)接口模塊之間的雙向通信。ZigBee網(wǎng)絡(luò)接口模塊由單片機執(zhí)行數(shù)據(jù)處理,單片機選型為CC2430。該型號是國外公司研制用來解決ZigBee芯片通信的問題。本文選擇的單片機型號具有射頻收發(fā)器和8051控制器,硬件方面具有CSMA/CA擴(kuò)展功能。要實現(xiàn)無線收發(fā)功能,外圍晶振器通過射頻功能實現(xiàn)數(shù)據(jù)的接收和發(fā)送,并使用非平衡變壓器提高接收數(shù)據(jù)的有效性。CC2430的外圍電路包括晶振時鐘電路、人機接口電路、復(fù)位電路、EEPROM存儲器擴(kuò)展電路以及調(diào)試接口電路等。CC2430單片機內(nèi)部集成的接口可用于后期的軟件開發(fā)與調(diào)試。

    3 CAN/ZigBee網(wǎng)關(guān)軟件設(shè)計方案

    3.1 地址映射表的設(shè)計與實現(xiàn)

    依據(jù)ZigBee無線通信協(xié)議棧的規(guī)定,ZigBee網(wǎng)絡(luò)的數(shù)據(jù)傳輸通過PAN網(wǎng)內(nèi)的短地址實現(xiàn),該短地址在節(jié)點加入網(wǎng)絡(luò)的時候由協(xié)調(diào)器節(jié)點進(jìn)行分配[5-6]。ZigBee可以采用兩種地址分配技術(shù),分別是:

    (1)Distributed Address Assignment Mechanism分布式地址分配技術(shù)

    (2)Stochastic Address Assignment Mechanism隨機地址分配技術(shù)

    無論采用哪一種地址分配技術(shù),ZigBee子節(jié)點每次加入網(wǎng)絡(luò)分配到的短地址都不同。因此,在ZigBee網(wǎng)絡(luò)中除了協(xié)調(diào)器的短地址固定為0x0000,其他節(jié)點的地址都不固定。這就導(dǎo)致出現(xiàn)類似下面的問題:

    (1)ZigBee網(wǎng)絡(luò)中,節(jié)點A的短地址為0x1699,節(jié)點B的短地址為0x1697,兩個節(jié)點分別利用短地址在網(wǎng)絡(luò)中進(jìn)行通信。

    (2)ZigBee網(wǎng)絡(luò)重建,節(jié)點A和節(jié)點B再次加入網(wǎng)絡(luò)并被分配短地址,節(jié)點A的短地址為0x1697,節(jié)點B的短地址為0x1699。

    這樣,節(jié)點A和節(jié)點B在網(wǎng)絡(luò)中的通信就會因前后兩次地址的不同而出現(xiàn)問題。

    為了使ZigBee網(wǎng)絡(luò)中向指定節(jié)點的信息發(fā)送正確,在網(wǎng)關(guān)軟件設(shè)計中利用節(jié)點的長地址、短地址和節(jié)點代碼建立一種映射關(guān)系,以實現(xiàn)ZigBee節(jié)點短地址變化后網(wǎng)絡(luò)通信的正確進(jìn)行。在協(xié)議轉(zhuǎn)換中所建立的地址映射關(guān)系如表1所示。

    作為現(xiàn)場總線網(wǎng)絡(luò)中接收數(shù)據(jù)的報文,網(wǎng)關(guān)之后對接收到的報文進(jìn)行解包、有效數(shù)據(jù)提取等操作,并將其重新打包發(fā)送至ZigBee網(wǎng)絡(luò)。

    3.2 CAN總線接口模塊軟件設(shè)計

    CAN總線接口模塊的程序設(shè)計利用C51語言編程實現(xiàn),編程使用Silicon Laboratories IDE集成開發(fā)環(huán)境。該軟件具有良好的人機界面,可以生成高效的目標(biāo)代碼。

    3.2.1 CAN總線接口模塊初始化程序

    初始化通過調(diào)用單片機配置子程序config()、CAN初始化子程序canini()和SPI配置子程序spi_cfg(uchar spicfg,uchar spickr,uchar spicn)完成。單片機配置子程序中完成對C8051F043內(nèi)部看門狗定時器的設(shè)置、I/O口交叉配置及系統(tǒng)工作時鐘設(shè)置。SPI配置子程序完成SPI通信的時鐘相位和極性的選擇、串行時鐘的設(shè)置以及串行通信中使用到的INT0和SPI中斷的設(shè)置。

    所有CAN消息對象初始化完成后,對寄存器CAN Control Register和Bit TimingRegister(波特率控制寄存器)賦值,寄存器CAN Control Register用來設(shè)置CAN的工作模式,Bit TimingRegister設(shè)置CAN的工作時鐘頻率。

    3.2.2 CAN總線接口模塊數(shù)據(jù)收發(fā)程序

    CAN接口模塊的數(shù)據(jù)收發(fā)分兩部分完成:CAN總線數(shù)據(jù)的接收與轉(zhuǎn)發(fā)和SPI數(shù)據(jù)的接收與轉(zhuǎn)發(fā)。現(xiàn)場總線通過中斷數(shù)據(jù)的方式進(jìn)行數(shù)據(jù)的接收。網(wǎng)關(guān)識別到CAN報文后,將其存入接收緩沖區(qū),再從緩沖區(qū)中讀出數(shù)據(jù)進(jìn)行SPI轉(zhuǎn)發(fā)。

    SPI數(shù)據(jù)的接收與轉(zhuǎn)發(fā)通過外部中斷INT0的中斷服務(wù)程序完成。由于C8051F043作為SPI主機工作,SPI接口必須由主機啟動進(jìn)行數(shù)據(jù)收發(fā)。CC2430向C8051F043發(fā)送數(shù)據(jù)時,通過I/O口給C8051F043一個中斷信號,再由C8051F043啟動數(shù)據(jù)傳輸過程。

    3.3 ZigBee網(wǎng)絡(luò)接口模塊軟件設(shè)計

    ZigBee網(wǎng)絡(luò)接口模塊軟件設(shè)計采用協(xié)議棧的技術(shù),通過參考標(biāo)準(zhǔn)的OSI/ISO網(wǎng)絡(luò)模型,設(shè)計協(xié)議棧的網(wǎng)絡(luò)結(jié)構(gòu)。OSI/ISO網(wǎng)絡(luò)模型分為七層網(wǎng)絡(luò)構(gòu)架。通過優(yōu)化OSI/ISO網(wǎng)絡(luò)模型,修改并重新命名了網(wǎng)絡(luò)模型,協(xié)議棧的每一層網(wǎng)絡(luò)完成不同的任務(wù),任意兩層之間通過網(wǎng)絡(luò)接口為上一層提供服務(wù)。

    3.3.1 ZigBee網(wǎng)絡(luò)接口模塊初始化程序

    ZigBee接口模塊的初始化程序主要完成對芯片寄存器、芯片硬件接口、液晶屏和協(xié)議棧的初始化操作。

    初始化程序段執(zhí)行后,網(wǎng)關(guān)即完成對CC2430內(nèi)外部資源及的配置,然后使用aplFormNetwork()函數(shù)搭建網(wǎng)絡(luò)。網(wǎng)絡(luò)搭建完成后,執(zhí)行程序進(jìn)入循環(huán)模式,來完成ZigBee網(wǎng)絡(luò)通信功能。

    3.3.2 ZigBee網(wǎng)絡(luò)接口模塊數(shù)據(jù)收發(fā)程序

    ZigBee接口模塊的數(shù)據(jù)收發(fā)程序可分為SPI數(shù)據(jù)收發(fā)和ZigBee數(shù)據(jù)收發(fā)兩部分。SPI接口的數(shù)據(jù)接收以中斷方式進(jìn)行。中斷服務(wù)程序每次將收到的數(shù)據(jù)存入緩沖區(qū),收到完整的SPI數(shù)據(jù)包后W_Point指向緩沖區(qū)下一數(shù)據(jù)塊。SPI接口的數(shù)據(jù)發(fā)送通過I/O口來控制C8051F043單片機實現(xiàn)。

    ZigBee數(shù)據(jù)的收發(fā)通過協(xié)議棧中特定函數(shù)完成。協(xié)議棧運行過程中,程序的循環(huán)執(zhí)行部分會首先選取狀態(tài)機中的通訊數(shù)據(jù),檢查能否接收ZigBee數(shù)據(jù),收到相關(guān)數(shù)據(jù)后調(diào)用ZigBee接收子程序。

    4 網(wǎng)關(guān)通信的試驗驗證

    4.1 試驗方案設(shè)計

    本文設(shè)計的CAN/ZigBee網(wǎng)關(guān)所要實現(xiàn)的是在CAN網(wǎng)絡(luò)與ZigBee網(wǎng)絡(luò)之間的雙向通信,以驗證本文設(shè)計的網(wǎng)關(guān)方案在實現(xiàn)協(xié)議轉(zhuǎn)換方面的可行性。根據(jù)網(wǎng)關(guān)的設(shè)計原理,試驗中ZigBee采用星形網(wǎng)絡(luò)拓?fù)?,同時在星形網(wǎng)絡(luò)內(nèi)有3個RFD節(jié)點作為網(wǎng)關(guān)的子節(jié)點。CAN總線網(wǎng)絡(luò)設(shè)計采用2+1的模式,即兩個節(jié)點和一個物理總線,網(wǎng)關(guān)作為總線上的一個節(jié)點,另一個設(shè)計為具有收發(fā)能力的CAN節(jié)點。驗證過程采用的試驗網(wǎng)絡(luò)如圖2所示。其中構(gòu)成CAN節(jié)點的主要芯片為C8051F043單片機和CAN收發(fā)器TJA1050,ZigBee節(jié)點采用的芯片為無線單片機CC2430。

    4.2 試驗結(jié)果分析

    進(jìn)行網(wǎng)關(guān)通訊性能測試之前,要利用軟件SmartRF?04 Flash Programmer對ZigBee節(jié)點寫入不同的物理地址,之后按前面所述的實驗步驟 1進(jìn)行ZigBee星形網(wǎng)絡(luò)的組網(wǎng)過程。ZigBee網(wǎng)絡(luò)組建后,利用CAN節(jié)點和ZigBee終端節(jié)點通過網(wǎng)關(guān)進(jìn)行相互的數(shù)據(jù)發(fā)送。CAN節(jié)點的數(shù)據(jù)檢驗是經(jīng)過查看Silicon Laboratories IDE的 CAN相關(guān)寄存器實現(xiàn),CAN節(jié)點接收到數(shù)據(jù)0xAA445566778899F1,與ZigBee節(jié)點發(fā)送的數(shù)據(jù)一致。通過查看調(diào)試軟件中的數(shù)據(jù),ZigBee節(jié)點接收到數(shù)據(jù)0xA10xA20x150x160x170x18,與CAN節(jié)點發(fā)送的數(shù)據(jù)相同。

    試驗結(jié)果表明,CAN/ZigBee網(wǎng)關(guān)具有接收和發(fā)送節(jié)點數(shù)據(jù)的功能,同時,網(wǎng)關(guān)的協(xié)議轉(zhuǎn)換完全正確,不存在數(shù)據(jù)轉(zhuǎn)換錯誤,下一步將驗證ZigBee網(wǎng)絡(luò)重組后,節(jié)點短地址的重新分配是否對網(wǎng)關(guān)的工作造成影響。通過網(wǎng)關(guān)通信試驗可以看出,CAN/ZigBee網(wǎng)關(guān)能夠完成數(shù)據(jù)傳輸過程中的協(xié)議轉(zhuǎn)換,成功解決不同網(wǎng)絡(luò)間數(shù)據(jù)轉(zhuǎn)換問題,處理因不同網(wǎng)絡(luò)節(jié)點地址分配的問題,可實現(xiàn)數(shù)據(jù)的100%準(zhǔn)確轉(zhuǎn)換,消除潛在影響。

    5 結(jié)論

    本文設(shè)計的CAN/ZigBee網(wǎng)關(guān)具有高效的數(shù)據(jù)傳輸能力,能同時發(fā)送和接收相關(guān)數(shù)據(jù),解決了協(xié)議之間數(shù)據(jù)轉(zhuǎn)換的問題。由于研究時間限制,本文采用簡化方案對CAN/ZigBee網(wǎng)關(guān)進(jìn)行設(shè)計。在后期的工作中,應(yīng)對網(wǎng)關(guān)軟件程序進(jìn)一步優(yōu)化,提高網(wǎng)關(guān)數(shù)據(jù)傳輸?shù)男阅芎屯ㄐ趴煽啃?,使其完全滿足實際應(yīng)用的需要。

    參考文獻(xiàn):

    [1] 羅回彬,吳方.基于ZigBee的無線傳感網(wǎng)絡(luò)網(wǎng)關(guān)的研究與設(shè)計[J].電子設(shè)計工程,2017,25(12):182-185.

    [2] 姜有光,杜亞江,齊金平,等.嵌入式無線傳感網(wǎng)絡(luò)網(wǎng)關(guān)設(shè)計與遠(yuǎn)程維護(hù)[J].測控技術(shù),2017,36(3):94-97,106.

    [3] 陳可偉,張金成,王鈺,等.基于Modbus協(xié)議的無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)設(shè)計[J].測控技術(shù),2016,35(2):99-103.

    [4] 邵芹文.無線傳感器網(wǎng)絡(luò)與無線局域網(wǎng)絡(luò)網(wǎng)關(guān)設(shè)計與應(yīng)用[D].杭州:浙江工業(yè)大學(xué),2015.

    [5] 梁宗保,李鵬.基于ZigBee技術(shù)的無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)設(shè)計與實現(xiàn)[J].計算機與現(xiàn)代化,2013(6):133-137.

    [6] 李佳.基于ZigBee和GPRS無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的設(shè)計與實現(xiàn)[D].南京:南京郵電大學(xué),2013.

    【通聯(lián)編輯:代影】

    猜你喜歡
    CAN總線數(shù)據(jù)傳輸網(wǎng)關(guān)
    基于改進(jìn)RPS技術(shù)的IPSEC VPN網(wǎng)關(guān)設(shè)計
    基于Ad Hoc的微震監(jiān)測數(shù)據(jù)傳輸系統(tǒng)設(shè)計
    論網(wǎng)絡(luò)通信技術(shù)
    基于嵌入式的汽車輔助制動系統(tǒng)研究
    CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應(yīng)用
    基于CANoe的J1939協(xié)議在ECU通信中的應(yīng)用
    科技視界(2016年18期)2016-11-03 22:53:48
    網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)總體架構(gòu)設(shè)計
    短波中低速數(shù)據(jù)傳輸技術(shù)
    GPRS DTU的應(yīng)用經(jīng)驗淺析
    科技視界(2016年11期)2016-05-23 17:44:00
    LTE Small Cell網(wǎng)關(guān)及虛擬網(wǎng)關(guān)技術(shù)研究
    移動通信(2015年18期)2015-08-24 07:45:08
    库尔勒市| 南丹县| 天气| 纳雍县| 丰台区| 七台河市| 南充市| 石河子市| 华亭县| 格尔木市| 沙湾县| 万年县| 江山市| 宜丰县| 鱼台县| 光山县| 英山县| 沈阳市| 仁寿县| 东安县| 馆陶县| 宜宾县| 日喀则市| 广汉市| 霍山县| 容城县| 格尔木市| 永泰县| 沧州市| 新津县| 迁西县| 古交市| 桑日县| 弋阳县| 固始县| 罗源县| 平罗县| 杭州市| 封开县| 临安市| 博罗县|