當前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]一種多協(xié)議的嵌入式總線集成器的設(shè)計與研究

由于工業(yè)現(xiàn)場總線在工業(yè)控制、智能儀器儀表、數(shù)據(jù)采集等方面得到了廣泛的應(yīng)用,因此對于總線集成的需求也應(yīng)運而生。不同種類的現(xiàn)場總線協(xié)議側(cè)重于各自的應(yīng)用領(lǐng)域,導(dǎo)致基于各種現(xiàn)場總線的產(chǎn)品由于協(xié)議的不同而無法相互通信。而一些傳統(tǒng)的總線集成方法采用總線橋級連的方式來完成協(xié)議之間的通信,存在通信延時大、穩(wěn)定性差、節(jié)點通信困難等缺點。針對以上問題,本文提出一套總線集成器的設(shè)計方案。該系統(tǒng)同時支持LonWorks、PPI、CANOpen和TCP/IP協(xié)議, C8051F120作為主控制芯片,采用模塊化結(jié)構(gòu),提供實時監(jiān)測數(shù)據(jù)功能,具有成本低、實時性高、可移植能力強等特點,有較高的組態(tài)性和靈活性[1~2]。
1 系統(tǒng)總體設(shè)計與工作流程
1.1 系統(tǒng)的總體設(shè)計

  系統(tǒng)結(jié)構(gòu)框圖如圖1所示。C8051F120是整個系統(tǒng)的主控制芯片,負責(zé)對數(shù)據(jù)的處理和交換,包括通過RTL8019與以態(tài)網(wǎng)的通信,通過UART口與PPI總線通信,通過RS232口與LonWorks總線通信以及和CAN總線控制器SJA1000通信等。CAN模塊和LON模塊分別完成對CAN和LON數(shù)據(jù)的收發(fā)處理。一方面,系統(tǒng)分別作為LonWorks、PPI、CANOpen總線的一個節(jié)點,完成相應(yīng)通信協(xié)議的通信及數(shù)據(jù)解析;另一方面,系統(tǒng)又要能夠完成各總線之間的數(shù)據(jù)轉(zhuǎn)發(fā)與共享。同時,為了支持遠程監(jiān)控能力,系統(tǒng)必須提供以太網(wǎng)接口以支持Internet功能。為了在現(xiàn)場提供監(jiān)測環(huán)境,系統(tǒng)設(shè)計了人機界面[3]。

1.2 各模塊工作流程
  主控制芯片C8051F120與RTL8019之間的接口是通過并行方式擴展的,為避免RTL8019A在C8051F120上的映射地址空間與 C8051F120內(nèi)部的8KB RAM地址空間 (0X0000~0X3FFF)重迭,擴展的外部設(shè)備被放到最高端(0X8000~0XFFFF),并采用非復(fù)用方式連接。模塊中還包括RS232與RS485之間的轉(zhuǎn)換。SN75LBC176是RS485差分總線收發(fā)器芯片。RS232數(shù)據(jù)由TX0通過光隔傳送到SN75LBC176的發(fā)送端 ,同時驅(qū)動發(fā)送控制端,數(shù)據(jù)就由SN75LBC176發(fā)送到RS485總線。當SN75LBC176接收數(shù)據(jù)時,數(shù)據(jù)傳送到RS232的RX0端。這樣就完成RS485到RS232的轉(zhuǎn)換。在系統(tǒng)中,為了提供人機交互的功能,設(shè)計了T6963C點陣式液晶圖形顯示控制器,在設(shè)計時,需要用一根地址線來實現(xiàn)液晶的數(shù)據(jù)通道和指令通道的區(qū)分。T6963C外接114×64的液晶顯示屏,可以提供監(jiān)測數(shù)據(jù)顯示的實例。
  CAN總線模塊由SJA1000、82C250、6N137等芯片組成。SJA1000是并行接口的CAN控制器。82C250是CAN控制器接口芯片。當C8051F120要向某節(jié)點發(fā)送數(shù)據(jù)時,它向SJA1000的一些緩沖器寫數(shù)據(jù)和命令。數(shù)據(jù)通過SJA1000處理后,合成CAN幀格式,通過6N137至82C250,由82C250的差分端CANH和CANL傳送到物理總線。外部節(jié)點發(fā)送過來的數(shù)據(jù)通過82C250經(jīng)光電隔離器6N137后被SJA1000接收,存放在SJA1000相應(yīng)的寄存器中。C8051F120就可以讀取這些CAN幀格式數(shù)據(jù)。
  LON模塊由MC143150、FTT-10A、MC145407以及外擴SRAM儲存器IS61C256AH-15N和外擴Flash存儲器AT29C512組成。MC143150是LonWorks控制芯片,含有Lontalk協(xié)議的固態(tài)軟件,主要用于LonWorks數(shù)據(jù)的處理。FTT-10A 是LonWorks收發(fā)器,它是一種變壓器耦合收發(fā)器,支持網(wǎng)絡(luò)的自由拓撲結(jié)構(gòu),作為LON網(wǎng)的網(wǎng)絡(luò)介質(zhì)的接口。MC145407是電平轉(zhuǎn)換芯片,負責(zé)MC143150與RS232之間的電平轉(zhuǎn)換。當C8051F120要向MC143150發(fā)送數(shù)據(jù)時,C8051F120把數(shù)據(jù)發(fā)送到串口緩沖區(qū),通過MC145407將I/O引腳輸入的TTL 電平和輸出的CMOS 電平轉(zhuǎn)換為EIA232C電平。MC143150收到數(shù)據(jù)信息后,將數(shù)據(jù)讀入儲存于MC143150的緩沖區(qū)中,然后由MC143150 打包為LonWorks網(wǎng)絡(luò)變量,通過不同節(jié)點、相同類型的網(wǎng)絡(luò)變量的互聯(lián), 即可實現(xiàn)LON 節(jié)點之間的數(shù)據(jù)傳送。另外,還外擴SRAM儲存器IS61C256AH-15N和Flash存儲器AT29C512,讓用戶能編制使用較大的程序。
2 軟件設(shè)計
2.1 系統(tǒng)的分層結(jié)構(gòu)

  整個系統(tǒng)采用分層方式完成各協(xié)議間的通信。系統(tǒng)分為硬件驅(qū)動層、協(xié)議層及其應(yīng)用層,如圖2所示。


  由于下層模塊只向上層提供一個軟件接口,屏蔽了下層的具體實現(xiàn)細節(jié)。上層軟件只有通過該接口才能與下層軟件發(fā)生聯(lián)系,這樣就保證了各層之間的獨立性。系統(tǒng)根據(jù)硬件接口、總線協(xié)議的不同,分為三個大的分層功能模塊,它們分別是LonWorks模塊、PPI模塊、 CANOPEN模塊。這些模塊又各自提供了硬件接收緩沖區(qū)、硬件發(fā)送緩沖區(qū)、協(xié)議接收緩沖區(qū)、協(xié)議發(fā)送緩沖區(qū)[4~5]。
[!--empirenews.page--]2.2 軟件實現(xiàn)的框架
  系統(tǒng)的軟件分為系統(tǒng)初始化模塊、系統(tǒng)配置模塊、協(xié)議通信總調(diào)度模塊、三個協(xié)議實現(xiàn)模塊及硬件驅(qū)動模塊。它們分別對應(yīng)系統(tǒng)軟件的不同分層。其中,系統(tǒng)配置模塊、協(xié)議間通信總調(diào)度模塊為應(yīng)用層程序。協(xié)議實現(xiàn)模塊(LonWorks協(xié)議模塊、PPI協(xié)議模塊、CANOpen協(xié)議模塊)為協(xié)議層程序。硬件驅(qū)動模塊為硬件驅(qū)動層程序。其流程圖如圖3所示。


  系統(tǒng)配置模塊主要完成系統(tǒng)的配置。它包括總線各端口是配置為主模式還是從模式、各通信協(xié)議的波特率等。系統(tǒng)可以通過兩種方式配置:一種為硬件方式配置,另一種是通過互連網(wǎng)進行軟件配置。協(xié)議間通信總調(diào)度模塊主要是驅(qū)動不同協(xié)議之間進行相互通信。各總線協(xié)議的格式解析分別由相應(yīng)的協(xié)議模塊完成。硬件驅(qū)動模塊主要完成把各硬件緩沖區(qū)中的數(shù)據(jù)發(fā)送到總線,同時把從總線接收來的數(shù)據(jù)存放到協(xié)議緩沖區(qū)中。
2.3 緩沖區(qū)結(jié)構(gòu)
  本系統(tǒng)的緩沖區(qū)采用改進的循環(huán)隊列結(jié)構(gòu),采用了三個指針Bp.In、Bp.Out、Bp.Try。其中,Bp.In是隊頭指針。當隊列接收一數(shù)據(jù)時,如果隊列緩沖區(qū)尚有空間,則數(shù)據(jù)入隊,同時Bp.In加1。Bp.Out是隊尾指針。當數(shù)據(jù)要出隊時, 如果隊列緩沖區(qū)非空,則Bp.Out加1。隊列緩沖區(qū)空或滿的判定方法可以用下面的偽C語言描述:
  if(Bp.In++== Bp.Out)
  {隊列緩沖區(qū)已滿};//如隊頭加1等于隊尾指針,則表示該隊列已滿
  if(Bp.Out== Bp.In)
  {隊列緩沖區(qū)已空};//如果隊尾指針趕上隊頭則表示該隊列已空
  Bp.Try是為通信時重發(fā)而準備的。當要發(fā)送數(shù)據(jù)時,Bp.Try向前移動(Bp.Try++),但Bp.Out不動(數(shù)據(jù)不出隊)。當Bp.Try=Bp.In時,表示隊列緩沖區(qū)已沒有數(shù)據(jù)要發(fā)送。如果要求數(shù)據(jù)重發(fā),僅僅把Bp.Try重新指回Bp.Out(Bp.Try=Bp.Out)再次發(fā)送。只有當發(fā)送成功時,才允許數(shù)據(jù)出隊(Bp.Out= Bp.Try)。由于一次發(fā)送數(shù)據(jù)的多少由Bp.Try決定(一次不一定把隊列緩沖區(qū)數(shù)據(jù)都發(fā)送完),這樣給數(shù)據(jù)的發(fā)送提供了極大的方便。
2.4 硬件緩沖區(qū)
  系統(tǒng)要發(fā)送數(shù)據(jù)時把發(fā)送協(xié)議緩沖區(qū)的數(shù)據(jù)拷貝到發(fā)送硬件緩沖區(qū),并驅(qū)動一次發(fā)送后退出。硬件發(fā)送緩沖區(qū)中的數(shù)據(jù)是由發(fā)送中斷自動完成的。硬件發(fā)送中斷驅(qū)動完一次數(shù)據(jù)發(fā)送就退出。當硬件發(fā)送完數(shù)據(jù)后就會產(chǎn)生中斷標志并重新進入中斷,重復(fù)上面的過程直到數(shù)據(jù)發(fā)送完。同樣,發(fā)送中斷只負責(zé)發(fā)送完硬件發(fā)送緩沖區(qū)中的數(shù)據(jù)而不關(guān)心這些數(shù)據(jù)代表的意義。中斷程序流程圖如圖4所示。


2.5 各總線協(xié)議間的通信方法
  各總線協(xié)議間通信是采用周期輪詢方式下的實地址共享。其基本思想就是系統(tǒng)定時地由配置為主模式的端口向其對應(yīng)總線的每個從機發(fā)送請求讀數(shù)命令包。從機接收到命令后就把它的數(shù)據(jù)傳送給主機(總線集成器)。主機把接收到的數(shù)據(jù)存放在對應(yīng)的協(xié)議地址中。當配置為從機的端口所對應(yīng)的總線上的主機向總線集成器請求數(shù)據(jù)時,總線集成器只是簡單地把前一個周期輪詢的數(shù)據(jù)應(yīng)答過去。由于輪詢總線的周期比較短,因此應(yīng)答的數(shù)據(jù)稍微滯后。但對總線采集的數(shù)據(jù)的真實性影響不大。


  下面以圖5中 CANOpen總線的節(jié)點B向LonWorks節(jié)點A請求數(shù)據(jù)為例來說明這種方式的通信過程。首先,系統(tǒng)周期性地改變從機號、通信命令、通信狀態(tài),向LonWorks所有的從機請求數(shù)據(jù),從機應(yīng)答的數(shù)據(jù)存放在其協(xié)議地址中。然后CANOpen主節(jié)點B向總線集成器請求LonWorks總線A節(jié)點中的數(shù)據(jù)。最后,總線集成器收到該命令,把剛采集到的協(xié)議地址上的值傳送給節(jié)點B。這一次通信至此結(jié)束。
  該多協(xié)議總線集成器目前提供了對LonWorks、PPI、CANOpen的支持,并且還對上面三種協(xié)議提供了利用TCP/IP遠程監(jiān)控和配置的接口,人機界面使系統(tǒng)有較好的監(jiān)測能力。由于該集成器采用了較高性能的處理器,使各個協(xié)議之間通訊實時性得到保證。為了有利于系統(tǒng)以后的擴展,整個總線集成器系統(tǒng)嚴格按照模塊化來進行硬件設(shè)計和軟件編程,使系統(tǒng)軟件的移植性大大提高。

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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