?

嵌入式技術的多協議轉換系統研究

2022-10-23 12:22
信息記錄材料 2022年8期
關鍵詞:嵌入式總線傳輸

張 帆

(晉中信息學院 山西 晉中 030800)

0 引言

現場總線技術在工業控制中占有舉足輕重的地位,其所涉及的通信協議、總線種類繁多,且具有各類通信協議與總線并存的特點。由于不同種類的通信協議在市場上具有不同的產品,這就導致不同的總線標準、協議存在很大的差別,同時對常見信息聯通帶來了負面影響,最終嚴重降低通信網絡的開放程度。因為每個總線標準和協議都有自己的特點,所以用戶在對本身的產品進行升級、改造的過程中,為了實現減少投資、維護成本的目的,就不會再選擇其他種類的產品,更傾向于選擇正在使用的同類型總線協議產品,因此導致現階段在工業控制的整體過程中不同類型的通信協議存在通信標準、協議難以統一的問題。

隨著我國針對該項技術研發力度的加大,促使多協議轉換系統已經能夠很好地解決上述問題。例如,現階段已有學者將S3C2440處理器作為基礎,實現了MQTT與多種協議之間的轉換[1]。還有學者在研究中設計了一個以ARM為基礎的協議轉換器,利用交換芯片中的端口,完成SPI、TCP協議之間的轉換[2]。本文在眾多學者的研究成果上,針對工業控制中較為常用的兩種協議,包括LIN、CAN協議,提出了以嵌入式技術為基礎的多協議轉換模型、設計,實現了LIN、CAN協議與總線間的多協議轉換。

1 多協議轉換系統模型

當前,世界范圍內的現場總線標準種類很多,而各廠家所研制的加工設備所支持的協議接口標準也各不相同,這給各種加工設備的連接造成了很大的困擾。國際上較為認可的解決這種困難的方案為:第一,通過針對系統模型進行調整,促使管理系統對不同國家的設計總線進行統一支撐,以此確保存在差異性的處理裝置能夠得到良好互聯,并以此來達到協議之間的交換目的。發揮管理系統的作用,同時為協議轉換提供統一接口,在對協議轉換系統進行高度利用后可以最大程度實現不同類型總線協議的交換,最終轉換為一個能夠被管理系統所支持的總線協議,在此基礎上,所有工業車間中的海量數據均可以通過這種形式實現實時、高效的傳輸[3]。即便上述方案能夠解決問題,但是此種設計方案也存在一定缺陷,比如在采用該種設計方案時會對系統的后期維護以及創新開發形成阻礙。第二,利用協議轉換促使管理系統、加工設備相分離。這種方案的優勢較為明顯,能夠對各類加工設備的增加、更換等起到積極作用,同樣也能夠實現不同類型協議之間的通信困難。因此,在解決方案的選擇上,本文更傾向于選擇第二種解決方案。

多協議轉換系統主要是通過對各種不同類型的協議進行分割和重構,從而使各種不同類型的通信協定能夠互相轉化。本文所設計的多協議系統模型,將RS485總線協議作為接口的一端,因RS485接口具有簡便性,與常用的計算機等設備的匹配程度相對較高,將LIN、CAN協議作為接口的另一端,設計原理就是利用一個總線協議向多個不同的總線協議進行轉換,從而實現統一應用。本文所設計的多協議系統模型詳見圖1。

2 嵌入式技術的多協議轉換系統設計

本文所開展的多協議轉換系統設計是在嵌入式技術的基礎上實現的,在系統的中央處理模塊中以嵌入式處理器為主,并在中央處理模塊的外圍設有兩個協議,分別為CAN、LIN協議,以Linux系統作為軟件平臺,并編寫相應的驅動與應用程序,具體的硬件設計、軟件設計如下。

2.1 硬件設計

多協議轉換器需要具有LIN、CAN、RS485總線協議之間的交換功能。在整個硬件設備的要求中,在LIN、CAN、RS485總線協議中均應設置相應的硬件接口,并利用硬件來完成對多協議的分析。在本文的設計中,主要將處理器設定為Exynos4412處理器,并在其外圍增設多種協議的接口電路。本文具體的硬件設計方案詳見圖2。該多協議轉換器包括CAN總線接口電路、RS485總線接口電路和LIN接口電路和電源電路4個部件,該電路的電源主要采用Exynos4412的基礎電路和各個接口電路進行供電,通過Exynos4412芯片的協同作用,使得3種總線接口電路相互配合、井然有序地運行,并最終實現3種協議之間的相互轉換[4]。

LIN總線協議的接口部分采用RS232驅動器,SP232EEN芯片和TJA1020的收發機構成,TJA1020作為LIN主從協定的控制器與LIN內局域網的實體總線的連接,它的核心是采用2.4-20Kbaud波特率,其TXD輸入一端的協議控制設備所發送的數據會由LIN的收發器轉換為一個總線信號,這種總線信號具有可控制轉換數量、調整波形的特點,并以此來減少EME。LIN總線的輸出管腳經過它的內部的末端電阻而被拉高[5]。

CAN總線協議的接口部分主要利用GPIO的擴展,選用型號為MCP2515的CAN控制芯片,同時選用與型號相匹配的接收器(TJA1050型)。本文所選用的型號為MCP2515的CAN控制芯片是一個能夠獨立控制局部網絡的控制器,利用該芯片可以實現對CAN的規范,該芯片可起到擴展數據等重要作用。同時,該芯片主要是由兩個接受掩碼、六個接受過濾波形器組成,其作用主要是過濾不必要的消息與數據,進而減低主機中MCU的消耗與開銷。MCP2515與微型控制器的連接主要是采用符合國家工業標準的串行外部設備接口SPI。

RS485總線協議的接收器主要采用了MAX3485芯片,該芯片是RS-485收發芯片的一種,一般來講,這種芯片的工作頻率是3.3 V,芯片的通信速率和效能是10 Mbps,這一指標與RS-485和RS-422串行通信的特點是一致的,主要采用半串或雙串方式,以差分波為主要驅動方式,并能有效地防止線路的短路。在相同的總線中,本方案最多能同時容納32臺收發信機,同時具有功率低,速率高,可靠性高等特點。

2.2 軟件設計

本文所采用的處理器為Exynos4412處理器,該處理器為4核處理器,在其內部存在4個獨立運行的CPU,為了使該處理器的CPU資源利用得更加充分,本文將Linux系統作為主要的軟件平臺,該系統可最大限度滿足4個在微觀層面上同時運行的進程,無論是RS485處理協議還是CAN、LIN協議均可由該系統實現,通過建立相應的設備節點等文件,利用既定的應用程序可實現對節點文件的讀取、傳輸[6]。

2.2.1 驅動程序

在對Linux系統的驅動程序進行細化后大致可以將其分為以下3種不同類型,其一是字符驅動類,其中常見的包括RS485總線協議以及LIN協議;其二為塊設備驅動類,最后一種則是網絡設備驅動類。以下是CAN總線協議驅動程序的編寫實例。

(1)首先通對CAN總線協議結構構造出Can_dev,獲取cedv以及系統緩沖區必備的數組字符器件;創建file_operations結構對象,即Can_fops。

(2)其次,利用系統編寫Can_init函數表達,目的是能夠創建一個Can_dev對象,創建完成后需要申請主設備號,設備號申請完成后綁定Can_fops對象;再次利用系統編寫Can_exit函數表達,編寫完成函數后刪除Can_dev對象,隨后釋放主設備號。

(3)利用系統編寫Can_open、read、write等函數表達,賦值Can_fops的open、read、write函數指針。

(4)編制代碼,生成代碼文件。

圖3為Can_read函數的部分代碼。

Linux的設備驅動通常包括一個堵塞和相互排斥的機制,使得整個驅動過程在資源爭奪失敗、資源爭奪成功但資源并不能被使用時,放棄CPU的使用權限,進而促使CPU進入一個休眠狀態,隨后在其可獲得資源的時候被喚醒。但是,從休眠至喚醒期間都會耗費大量的時間,從而會對總線協議的實時傳輸產生一定的干擾,因此,本文在驅動程序的設計中,CAN總線驅動、LIN驅動和RS485總線協議是相互獨立的,沒有任何的資源爭奪和相互排斥,從而為總線協議的構建過程提供了依據,利用非阻塞形式的讀取和寫入,以改善數據傳輸的實時性。

2.2.2 應用程序

上述步驟完成后需要利用程序讀取RS485總線協議緩沖區域數據,并且利用所獲取的數據對總線具體類型進行準確分辨,完成后將其納入到CAN、LIN總線協議得到輸出緩沖區域,選取上文中所提到的驅動設備,以此來完成多種數據、資料的傳輸工作。反之,利用應用程序對CAN、LIN總線協議緩沖區域的數據進行讀取,并施加一個相應的標識,最后將其寫入到RS485總線協議的輸入緩沖區域中,最終實現多種數據、資料的接收工作。三組類型的數據傳輸和接收過程,沒有進程休眠,沒有搶占進程等問題,同時也克服了Linux的實時性能較差的問題。以CAN協議為例,其協議程序的流程圖詳見圖4。

在此過程中,程序會使用開放功能來開啟RS_driver和Can_drvier等設備文件,并將其分別存儲在具有文件標識的fd0和fd1兩個變量之中,同時利用這兩個文件表示持續、反復地利用非阻塞的方法對write和read進行調用,這個功能在CAN總線的驅動程序中會呼叫Can_write和Can_read功能來讀取這些數據;在此過程中,Rem_ident()和Add_ident()功能會刪除并增加對應的標識符號,以確保識別各種類型的協議數據。同樣以CAN協議為例,其部分代碼詳見圖5。

當一個進程被執行時,它就會陷入一個永遠不會結束的死循環,并且在不被阻止的情況下,它不會停止讀取和寫入數據,并在此基礎上不間斷地發送數據,以確保及時的信息傳達。

3 針對嵌入式技術的多協議轉換系統設計開展實驗測試

在本文提出的嵌入式技術的多協議轉換系統設計的基礎上,對該設計的可行性等展開實驗測試,實驗將硬件平臺設置為Exynos4412嵌入式開發板,在外部連接RS485、CAN和LAN的總線接口,軟件平臺主要以Linux操作系統為主,通過編寫RS485、CAN和LAN的驅動程序和應用程序,實現多協議之間的數據傳輸與發送。

將RS485總線的接口與PC機相結合,將CAN和LIN接口與兩臺單獨的MCU相結合,將兩臺微處理器串成計算機。在PC機上采用RS485總線,采用多路傳輸技術實現了對多路傳輸的控制,并將其傳輸到MCU中的CAN、LIN總線。

處于單片機中的CAN、LIN總線協議可以利用多協議轉換系統對數據進行發送,處于上位機的RS485總線協議可以利用多協議轉換系統對數據進行發送。

將01、02作為CAN、LIN總線協議所接收、發送的數據標識,通過多協議系統對01、02標識的數據進行識別。同時,上位機利用cutecom工具對從CAN、LIN總線協議接收到的數據進行顯示,采用單片機和 PC機之間的串行接口,通過顯示器輔助從RS485總線上采集資料與數據。具體的數據接收詳見圖6~圖8。

開展多次發送數據的實驗測試,其中圖6、圖7中CAN和LIN總線接收到的數據與表2中的數字相對應,由此可見,利用本文所提出的多協議轉換系統設計可以很好地實現數據的準確傳輸。在整個的傳輸過程中并沒有利用RS485總線協議發送標識。表明多協議轉換系統可以利用標記識別數據,在去掉標記的前提下將各類數據經由CAN和LIN總線協議發送到單片機中。圖8則與上文中的表1相對應。同樣可以明確的是本文所提出的多協議轉換系統設計可以實現數據的準確傳輸,且在整個數據的傳輸過程中多出了01、02兩種標識,利用這兩種標識可以有效識別CAN和LIN總線協議發送的數據。由此可以得出結論:本文所提出的多協議轉換設計,可以在CAN和LIN兩種協議上增加相應的標識(01、02),并通過RS485總線協議將數據發送給上位機,上位機也可通過01、02這種標識識別CAN和LIN兩種協議,并對所接收的數據展開下一步的處理工作。

4 結語

綜上所述,本文為了解決工業領域內存在的各種通信協議之間的通信問題,提出了一種多協議轉換系統設計,并利用嵌入式技術實現了多協議轉換系統的信息傳輸。將Exynos4412嵌入式開發板作為主要的硬件設備,將Linux操作系統作為主要軟件設備,利用Exynos4412構建RS485、CAN、LIN總線接口的硬件平臺,在Linux系統環境中對RS485、CAN、LIN總線協議的驅動、應用進行編程。為了驗證所提出的嵌入式技術的多協議轉換系統數據傳輸的準確性、可行性,開展了相應的實驗測試,根據實驗的最終結果證明,利用單片機、上位機等可以實現CAN、LIN、RS485的數據傳輸,證明了本文提出的多協議轉換系統設計具有可靠性和準確性,在某種意義上克服了通信協議的異構性,同時次系統還可以在其他各種總線上進行多個通信協定的變換。

隨著當今世界范圍內計算技術的高速發展,集散式控制系統應運而生,該系統實現了最大程度降低各個分通信點的個數,然而即便如此,該系統仍然存在不可忽視的問題,即在實踐中應用繁瑣的、采用一對一形式的物理連接。因此,未來相關研究依舊需要加大對該項技術的研發力度,提升系統應用效率,促進計算機技術的發展。

猜你喜歡
嵌入式總線傳輸
基于IMX6ULL的嵌入式根文件系統構建
時間觸發通信總線監控技術研究
軌道交通信號系統無線傳輸應用
Focal&Naim同框發布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
5G高新視頻的雙頻段協同傳輸
5G 16K虛擬現實視頻傳輸關鍵技術
關于CAN總線的地鐵屏蔽門控制思路論述
牽引8K超高清傳輸時代 FIBBR Pure38K
基于ARM嵌入式的關于圖像處理的交通信號燈識別
TS系列紅外傳感器在嵌入式控制系統中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合