一種嵌入式現(xiàn)場總線通信網(wǎng)關的設計與實現(xiàn)_第1頁
一種嵌入式現(xiàn)場總線通信網(wǎng)關的設計與實現(xiàn)_第2頁
一種嵌入式現(xiàn)場總線通信網(wǎng)關的設計與實現(xiàn)_第3頁
一種嵌入式現(xiàn)場總線通信網(wǎng)關的設計與實現(xiàn)_第4頁
一種嵌入式現(xiàn)場總線通信網(wǎng)關的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、【W(wǎng)ord版本下載可任意編輯】 一種嵌入式現(xiàn)場總線通信網(wǎng)關的設計與實現(xiàn) 現(xiàn)場總線是近年來發(fā)展迅速的一種工業(yè)數(shù)據(jù)總線,作為工廠數(shù)字通信網(wǎng)絡的根底,它是溝通生產過程現(xiàn)場及控制設備之間及其與高控制管理層次的橋梁。現(xiàn)場總線作為一項以智能傳感、控制、計算機、數(shù)字通信等技術為主要內容的綜合技術,已成受到世界范圍的關注。很多具有國際影響力的公司都先后開展了現(xiàn)場總線產品的開發(fā),盡管國際電工委員會(IEC)自1984年開始制定現(xiàn)場總線標準,目前仍然是多種現(xiàn)場總線并存。多種標準并存的情況造成了不同總線系統(tǒng)之間的不兼容,大大降低了總線系統(tǒng)間的互聯(lián)性和互操作性,給系統(tǒng)的升級和擴容造成了很大的困難。CANBUS和MOD

2、BUS是2種應用廣泛的工業(yè)現(xiàn)場總線,在實際應用中隨著這2種總線技術的不斷發(fā)展及應用,2種總線的交集越來越多,因此彼此間的數(shù)據(jù)共享變得日漸重要。 文中設計的現(xiàn)場總線通信網(wǎng)關提供了對CANBUS和MODBUS的支持,實現(xiàn)了CANBUS與MODBUS數(shù)據(jù)的透明傳輸,為2種總線的兼容提供了可行方案。 1 網(wǎng)關模型分析 本文設計的現(xiàn)場總線通信網(wǎng)關具備MODBUS主站及MODBUS從站的功能,以下以兩種典型的應用場景為例分析網(wǎng)關的工作方式。圖1所示的應用場景網(wǎng)關工作在MODBUS主站模式,圖2所示的應用場景網(wǎng)關工作在MODBUS從站模式。 1.1 網(wǎng)關的MODBUS主站模式 網(wǎng)關工作于MODBUS主站模式

3、時,當CANBUS上的監(jiān)控主機發(fā)出一幀數(shù)據(jù)時,網(wǎng)關作為CANBUS上的設備接收到該數(shù)據(jù),根據(jù)驗收碼和屏蔽碼判斷是否處理該數(shù)據(jù)。若驗證成功,則解析收到的CAN數(shù)據(jù)幀,得到CAN數(shù)據(jù)幀中的數(shù)據(jù);將數(shù)據(jù)按照MODBUS協(xié)議逐層打包生成MODBUS幀,網(wǎng)關作為MODBUS主站向MODBUS上的從站發(fā)送這一幀數(shù)據(jù),完成了CANBUS到MODBUS的單向數(shù)據(jù)傳輸。協(xié)議轉換示意圖如圖3所示。 1.2 網(wǎng)關的MODBUS從站模式 網(wǎng)關工作于MODBUS從站模式時,當由MODBUS上的監(jiān)控主機發(fā)出一幀信息時,網(wǎng)關收到該MODBUS幀,檢查地址碼與功能碼,若與自身地址相符且功能碼為發(fā)送,按MODBUS協(xié)議逐層解析

4、,得到其數(shù)據(jù);網(wǎng)關將數(shù)據(jù)按照CANBUS協(xié)議打包形成CAN的數(shù)據(jù)幀,向CANBUS發(fā)送該幀,并向MODBUS主站發(fā)送回應幀,完成了MODBUS到CANBUS的單向數(shù)據(jù)傳輸。 2 硬件設計 本文設計的嵌入式現(xiàn)場總線通信網(wǎng)關包括主控制器(STM32F207),CANBUS接口單元,MODBUS接口單元用于接入MODBUS,以及3.2英寸LCD觸摸屏模塊。硬件系統(tǒng)框圖如圖4所示。 2.1 STM32F207微控制器 本文選用STM32F207構建整個系統(tǒng),STM32F207是一款基于ARM Correx-M3內核的32位微處理器,工作頻率120 MHz.STM32F207提供了豐富的接口,支持2路C

5、AN 2.0協(xié)議的CANBUS接口,3路USART接口,2路UART接口,6路定時器,F(xiàn)SMC+SPI接口(16BITFSMc+SPI)用于接入LCD觸摸屏模塊,支持2種調試接口:串行接口和JTAG調試接口。 2.2 CANBUS接口單元 由于STM32F207內置有bxCAN控制器,該控制器是一種在標準CAN總線根底上擴展的總線接口,支持CAN總線協(xié)議2.0 A和2.0 B.能以的CPU負荷來高效處理收到的大量報文。它也支持報文發(fā)送的優(yōu)先級要求(優(yōu)先級特性可軟件配置)。為了滿足CAN總線協(xié)議中的標識符硬件過濾需求,bxCAN控制器提供了位寬可變的、可配置的過濾器組,用來完成只接收軟件需要的報

6、文功能。CAN接口電路選擇SN65HVD230CANBUS收發(fā)器。SN65HVD230是一種專用于帶CAN控制器設備的CANBUS收發(fā)器,可應用于ISO 11898標準的CANBUS串行通信的物理層中。SN65HVD230CAN BUS收發(fā)器可以向總線和CAN控制器提供不同的數(shù)據(jù)傳輸速度,速度為1 Mb/S. 2.3 MODBUS接口單元 MODBUS接口單元使用RS 485串行接口,接口芯片為MAX485.MAX485是用于RS 485與RS 422通信的低功耗收發(fā)器,每個器件中都具有一個驅動器和一個接收器。驅動器具有短路電流限制,并可以通過熱關斷電路將驅動器輸出置為高阻狀態(tài),防止過度的功率

7、損耗。接收器輸入具有失效保護特性,當輸入開路時,可以確保邏輯高電平輸出。MAX485的驅動器擺率不受限制,可以實現(xiàn)2.5 Mb/s的傳輸速率。 3 軟件設計 3.1 CANBUS的應用層定義 本文設計的現(xiàn)場總線通信網(wǎng)關定義了CANBUS的應用層協(xié)議。 (1)規(guī)定網(wǎng)關收到的CAN數(shù)據(jù)幀中的第1個字節(jié)為CANBUS的功能碼,該功能碼為0 x0F時,與MODBUS開展通信。 (2)規(guī)定CAN數(shù)據(jù)幀中的第2個字節(jié)的高4位為該幀的標號位,低4位為該幀中包含的數(shù)據(jù)字節(jié)數(shù),該字節(jié)數(shù)為MODBUS協(xié)議中數(shù)據(jù)域的字節(jié)數(shù)。 (3)規(guī)定CAN數(shù)據(jù)幀中的第3,第4個字節(jié)分別為MODBUS的地址碼和功能碼。 (4)規(guī)定

8、從CAN數(shù)據(jù)幀的第5個字節(jié)開始為MODBUS的數(shù)據(jù)域,由于MODBUS的數(shù)據(jù)域一般為4個字節(jié),此時CAN數(shù)據(jù)幀的數(shù)據(jù)段恰好為8個字節(jié)。 (5)當MODBUS數(shù)據(jù)長度大于4字節(jié)時,需要從2個或者多個連續(xù)發(fā)送的標號相同的CAN數(shù)據(jù)幀中獲得完整的MODBUS數(shù)據(jù)。當獲得的數(shù)據(jù)位數(shù)與幀中給出的位數(shù)不同時丟棄該幀。 定義一個數(shù)據(jù)緩沖區(qū)A,一個數(shù)據(jù)緩沖區(qū)B,分別用于臨時存放CANBUS到MODBUS的數(shù)據(jù)和MODBUS到CANBUS的數(shù)據(jù)。 3.2 CANBUS的收發(fā)程序設計 該部分包括CAN初始化,CAN發(fā)送程序,CAN接收程序。CAN的初始化包括以下內容:配置嵌套向量中斷控制器(NVIC),設置CAN

9、的Rx0和TX中斷的響應優(yōu)先級和搶占優(yōu)先級,RX0和TX中斷使能。根據(jù)硬件連接配置GPIO,本文中RX使用GPIOD0,TX使用GPIOD2.設置波特率及過濾器配置。 CANBUS數(shù)據(jù)的接收是通過接收郵箱(FIFO)中斷開展處理的,當FIFO接收到一個新的報文時,過濾器根據(jù)預設的值判斷報文的標示符是否匹配,若不匹配,直接丟棄該報文;若該報文的標示符與預設值匹配則中斷處理程序將接收郵箱中的數(shù)據(jù)拷貝到數(shù)據(jù)緩沖區(qū)A,該數(shù)據(jù)將作為MODBUS主站發(fā)往MODBUS從站的數(shù)據(jù)。CANBUS數(shù)據(jù)接收程序流程如圖5所示。 CANBUS的數(shù)據(jù)發(fā)送同樣使用郵箱機制,網(wǎng)關從數(shù)據(jù)緩沖區(qū)B中獲得從MODBUS接收的數(shù)據(jù)

10、,設置標示符和數(shù)據(jù)長度,選擇一個發(fā)送郵箱,使能發(fā)送郵箱空中斷。因此當該郵箱為空時產生一個中斷,中斷處理程序將數(shù)據(jù)從緩沖區(qū)拷貝到發(fā)送郵箱,該郵箱狀態(tài)變?yōu)轭A定發(fā)送狀態(tài)。 當CAN總線進入空閑狀態(tài),預定發(fā)送郵箱中的報文就馬上被發(fā)送,進入發(fā)送狀態(tài)。郵箱中的報文被成功發(fā)送后,它馬上變?yōu)榭锗]箱。CAN BUS數(shù)據(jù)發(fā)送程序如圖6所示。 3.3 MODBUS主站、從站的收發(fā)程序設計 網(wǎng)關作為MODBUS從站時的主要工作是初始化串口,初始化定時器,配置嵌套向量中斷控制器(NVIC),分別對串口接收數(shù)據(jù)中斷和定時器中斷設置響應優(yōu)先級和搶占優(yōu)先級。從數(shù)據(jù)緩沖區(qū)A中獲得數(shù)據(jù),對獲得的數(shù)據(jù)生成CRC校驗碼,組成MODB

11、US幀從串口按照時序發(fā)送這一幀數(shù)據(jù)。 串口初始化如下: MODBUS協(xié)議規(guī)定了2種傳輸模式:ASCII模式和RTU模式。本文設計的網(wǎng)關使用RTU模式傳輸,在此模式下報文中每個8位字節(jié)含有2個4位16進制字符它的優(yōu)點是較高的數(shù)據(jù)密度,在相同的波特率下比ASCII模式有更高的吞吐率。命令幀由地址碼、功能碼、數(shù)據(jù)語和CRC校驗碼構成。在RTU模式下,幀與幀之間必須由時長至少為3.5個字符時間的空閑間隔區(qū)分。整個幀必須以連續(xù)的字符流發(fā)送,如果兩個字符之間的空閑間隔大于1.5個字符時間,則該幀被認為不完整的幀而被丟棄,接收設備假定下一字節(jié)是一個新消息的地址域。 MODBUS主站程序需要使用3個定時器,其

12、中TIM2用于控制發(fā)送的3.5個字符的幀間隔。TIM3用于控制接收MODBUS從站的回應幀的3.5個字符的幀間隔。TIM4用于接收時確保字符間的間隔小于1.5個字符時間。初始化TIM2與TIM3,定時時間為定時3.645 8 ms(波特率為9 600 b/s時的3.5字符時間): 網(wǎng)關作MODBUS主站的工作流程如圖7所示。 網(wǎng)關工作在MODBUS主站模式時對從站響應幀的接收使用中斷處理的方式。在個字節(jié)傳輸結束后啟動TIM4定時器,定時時間為1.5個字符時間,在后續(xù)的字節(jié)傳輸結束時清零計數(shù)器,保證一個幀中的字符間隔不超過1.5個字符時間。接收完成后啟動定時器TIM3,定時3.5個字符時間,在此

13、時間內的接收的任何數(shù)據(jù)都將丟棄。 網(wǎng)關作為MODBUS從站時對化串口和定時器的初始化與MODBUS主站相同,將數(shù)據(jù)組成CAN的幀,發(fā)送該幀,并向MODBUS主站發(fā)送響應幀。網(wǎng)關作為MODBUS從站的工作流程如圖8所示。 3.4 主程序 主程序中初始化FSMC,初始化LCD,初始化觸摸屏,校正觸摸屏,顯示工作模式選擇界面、參數(shù)配置界面及當前工作模式界面。根據(jù)選擇進入相應工作模式。 4 測試結果 在PC機上使用串口助手和USB-CAN軟件模擬CANBUS與MODBUS的收發(fā)。MODBUS到CANBUS的通信模擬:由PC機向網(wǎng)關發(fā)送一幀數(shù)據(jù)00 01 02 03 0405 06 07,網(wǎng)關設置幀ID為0 x321并發(fā)出數(shù)據(jù),通過CANUSB軟件接收該數(shù)據(jù)為00 01 02 03 04 05 06 07.如圖9所示。CANBUS到MODBUS的通信模擬:使用CAN-USB軟件發(fā)送一幀0f 14 0f 05 00 01 02 03,網(wǎng)關解析其

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論