• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于CAN總線的數(shù)據(jù)接收控制方式的設計

      2012-06-06 08:14:04劉素華沈三民黃仁杰
      電視技術 2012年1期
      關鍵詞:發(fā)送數(shù)據(jù)模擬量上位

      劉素華,沈三民,黃仁杰

      (1.中北大學電子測試技術國家重點實驗室,山西 太原 030051;2.中北大學材料科學與工程學院,山西 太原 030051)

      CAN總線是國際上應用廣泛的現(xiàn)場總線之一,是一種多主方式的串行通信總線,已被廣泛應用于汽車電子和航空等領域。C8051F040內部集成有博世CAN控制器的混合信號系統(tǒng)級芯片(SoC),能夠實現(xiàn)國際上標準的CAN傳輸協(xié)議本[1]。本系統(tǒng)通過C8051F040單片機和FPGA來實現(xiàn)模擬量數(shù)據(jù)和數(shù)字量數(shù)據(jù)的接收,并通過USB接口傳到上位機實時分析數(shù)據(jù)的準確性。

      1 總體框圖

      數(shù)據(jù)接收系統(tǒng)的主要作用是通過CAN總線接口接收來自其他設備的數(shù)字量和模擬量,并可以通過USB接口傳到上位機中,實時分析數(shù)據(jù)的可靠性。系統(tǒng)涉及到的主要模塊包括CAN總線接口模塊、C8051F040單片機控制模塊、FPGA主控模塊以及USB接口模塊。系統(tǒng)的總體設計框架如圖1所示。

      圖1 系統(tǒng)的總體框圖

      上位機通過FT245BM和底層硬件設備進行通信。FPGA中控單元主要是和FT245BM及單片機進行通信,并對有關數(shù)據(jù)接收、緩存、發(fā)送等操作進行控制。單片機內部集成了CAN控制器,通過CAN接口接收數(shù)字量數(shù)據(jù)和模擬量數(shù)據(jù)并傳送到FPGA控制單元。CAN總線收發(fā)器選用的是飛利浦公司生產(chǎn)的TJA1040。CAN總線控制器和CAN總線接口之間要通過高速光電耦合器6N137進行隔離,提高系統(tǒng)的抗干擾能力。信號傳輸易產(chǎn)生輻射和信號衰減,本文采用雙絞線外加金屬屏蔽層,可減少信號輻射,防止重要信息外泄,也可阻止外部電磁信號干擾的進入,同時使用屏蔽雙絞線比使用非屏蔽雙絞線具有更高的信號傳輸速率。

      2 CAN總線接口接收消息的控制

      系統(tǒng)數(shù)據(jù)接收主要是通過C8051F040系列單片機內部集成的CAN模塊進行,其硬件電路接口如圖2所示。

      圖2 C8051F040單片機接口電路

      單片機C8051F040的CAN核控制器原理如圖3所示。

      圖3 CAN控制器的原理框圖

      在圖3中,接口單元是CPU接口;消息處理單元主要是通過狀態(tài)機控制數(shù)據(jù)從CAN核的輸入輸出移位寄存器和消息RAM之間傳輸;所有寄存器都用來控制和配置CAN模塊;CAN核控制器及輸入、輸出移位寄存器用于消息的串/并轉換及其他和協(xié)議相關的任務。CAN控制器的幀格式是系統(tǒng)自動生成的,不需要自己去設計幀格式,只需要往相關的寄存器中寫入相應的內容即可。

      系統(tǒng)接收的數(shù)據(jù)采用的是標準幀,接收數(shù)據(jù)時,當接收到的消息仲裁和控制領域已經(jīng)完全移到CAN核的Rx/Tx移位寄存器時,消息處理的優(yōu)先狀態(tài)機便開始掃描消息RAM來匹配一個有效的消息對象。接收過濾的單元裝入CAN核移位寄存器中的仲裁位,然后消息對象的仲裁和屏蔽信息域裝入接收過濾單元并且和CAN核移位寄存器中的仲裁信息域相比較,直到找到匹配的消息對象。這種匹配會在所有的消息對象中重復。一旦匹配出現(xiàn)則停止掃描,進行消息處理。接收消息控制的流程如圖4所示。

      圖4 接收消息控制流程圖

      3 FPGA主控模塊

      模擬量和數(shù)字量數(shù)據(jù)的接收以FPGA作為中央控制器。主要完成的功能有接收上位機命令、向單片機發(fā)送命令、接收單片機發(fā)送來的模擬量數(shù)據(jù)和數(shù)字量數(shù)據(jù),并通過緩存模塊進行讀寫控制,將讀取到的數(shù)據(jù)混合編幀通過USB接口傳到上位機。FPGA主控模塊的原理如圖5所示。

      圖5 FPGA主控模塊

      如何在異步時鐘方式下實現(xiàn)同步是FPGA和單片機進行實時通信的關鍵點。對于異步接口,可以采用以下兩種方式避免亞穩(wěn)態(tài)的發(fā)生:1)速率不匹配,需要緩存??梢赃x擇使用FIFO或者雙RAM口進行緩存。2)需要握手信號??梢允褂秒p握手信號,例如REQ和ACK等[2]。

      3.1 命令信號傳輸控制

      在本文中,考慮到系統(tǒng)的使用性,F(xiàn)PGA向單片機發(fā)送數(shù)據(jù)主要為命令信號,需要進行握手協(xié)議。首先FPGA需要將命令信號放在數(shù)據(jù)線上,同時向單片機發(fā)送請求信號,當單片機接收到請求信號后,接收FPGA發(fā)送的命令,接收完畢后,向FPGA回傳應答信號。這樣完成一次命令的發(fā)送,以此類推,保證了數(shù)據(jù)發(fā)送的可靠性。

      3.2 批量數(shù)據(jù)傳輸控制

      當單片機將收到的模擬量數(shù)據(jù)和數(shù)字量數(shù)據(jù)向FPGA進行傳送時,由于數(shù)據(jù)量較大,再使用握手信號來解決亞穩(wěn)態(tài)狀態(tài)就已經(jīng)不實用了。這時需要通過緩存RAM來解決亞穩(wěn)態(tài)現(xiàn)象。在單片機和FPGA傳送數(shù)據(jù)時,每次發(fā)送一個數(shù)據(jù),則需要編寫一個控制信號,本文是在wr信號的上升沿處向FPGA發(fā)送1 byte數(shù)據(jù)。

      經(jīng)過CAN總線傳過來的數(shù)字量和模擬量數(shù)據(jù)首先需要通過FPGA內部的RAM模塊進行緩存,F(xiàn)PGA通過監(jiān)測緩存模塊的半滿信號進行讀取。在一般的電路設計中,只需要邏輯控制電路產(chǎn)生空信號和滿信號,考慮到實際情況,需要邏輯控制模塊產(chǎn)生半滿信號和滿信號。由于本文有兩種類型的數(shù)據(jù),分別是模擬量數(shù)據(jù)和數(shù)字量數(shù)據(jù)。兩種類型的數(shù)據(jù)需要分別通過內部FIFO進行緩存。滿信號和半滿信號都是通過內部邏輯控制模塊產(chǎn)生的。當FULL=“1”時,停止向 RAM 中寫數(shù);當 FULL=“0”時,同時檢測寫使能信號和寫控制信號的上升沿,當條件同時滿足時,則向RAM中寫數(shù)據(jù),寫RAM控制流程圖見圖6所示。讀取RAM數(shù)據(jù)時,在復位的情況下,系統(tǒng)不做任何事情,當不復位的情況下,系統(tǒng)優(yōu)先判斷模擬量數(shù)據(jù)緩存模塊的半滿信號,當moni_HF=“1”時,讀取一定容量的數(shù)據(jù),并按著圖7的幀格式向上位機發(fā)送數(shù)據(jù),當模擬量RAM沒有出現(xiàn)半滿時再判斷數(shù)字量RAM塊。從RAM塊讀取數(shù)據(jù)的流程圖見圖8,當都沒有出現(xiàn)半滿時則系統(tǒng)默認為復位狀態(tài)。

      圖6 寫RAM塊控制流程

      圖7 模擬量和數(shù)字量幀結構

      圖8 讀RAM塊控制流程圖

      在上位機實時監(jiān)測時,傳到上位機中的數(shù)據(jù)既有模擬量也有數(shù)字量,為了能夠將所有數(shù)據(jù)均能夠實時地在上位機中顯示,通過幀頭幀尾來拆分。每一幀數(shù)據(jù)的幀頭均為CA AC,一旦出現(xiàn)E3 3E或者9D D9,說明一幀數(shù)據(jù)的結束。如果為E3 3E,則實時表示數(shù)字量數(shù)據(jù),若為D9 D9,則實時表示模擬量數(shù)據(jù)。

      4 USB接口的設計

      本文是通過FT245BM和上位機進行通信的。硬件電路和上位機進行通信時的時序圖見圖9和圖10。

      在圖9中,當FPGA檢測到TXE為低時,F(xiàn)T245BM允許接收數(shù)據(jù)緩沖區(qū)發(fā)送數(shù)據(jù)到USB端口,可以通過數(shù)據(jù)總線將數(shù)據(jù)發(fā)送到緩存區(qū)中,發(fā)出寫控制命令,即可發(fā)送數(shù)據(jù);當TXE信號被硬件置高時,不能發(fā)送數(shù)據(jù)。圖10中,當FPGA檢測到RXF為低時,F(xiàn)T245BM內部發(fā)送緩沖區(qū)有來自USB接口的數(shù)據(jù),發(fā)出讀控制命令,即可以從數(shù)據(jù)總線讀出數(shù)據(jù)。數(shù)據(jù)讀取結束,RXF信號硬件置高時,不能接收數(shù)據(jù)[3-4]。

      為了保證接收數(shù)據(jù)和發(fā)送數(shù)據(jù)正確性,一定要將關鍵性信號進行濾波。比如TXE和RXF都必須進行濾波,否則的話,由于TXE和RXF這些信號的抖動,造成接收數(shù)據(jù)和發(fā)送數(shù)據(jù)的錯誤。

      5 系統(tǒng)的驗證

      整套系統(tǒng)調試中連接其他設備,啟動整個系統(tǒng)進行工作,并通過上位機軟件讀取到的硬件電路發(fā)送過來的模擬量數(shù)據(jù)和數(shù)字量數(shù)據(jù),原始數(shù)據(jù)見圖11。

      6 總結

      本文主要是通過C8051F040單片機的CAN接口接收來自其他設備的模擬量數(shù)據(jù)和數(shù)字量數(shù)據(jù),主要以單片機和FPGA為中心,實現(xiàn)了單片機和FPGA之間的通信,適當?shù)牟捎昧藘炔烤彺婧臀帐值姆椒ù蟠鬁p小了亞穩(wěn)態(tài)造成的影響,并通過內部邏輯控制讀寫緩存中的數(shù)據(jù),將模擬量和數(shù)字數(shù)據(jù)混合編幀,按著一定幀結構通過USB接口傳到上位機中。

      圖11 上位機監(jiān)測到的混合編幀數(shù)據(jù)

      [1]饒運濤,鄒繼軍,鄭勇蕓.現(xiàn)場總線CAN原理和應用系統(tǒng)設計[M].北京:北京航空航天大學出版社,2003.

      [2]吳曉蕻.跨時鐘若干問題的研究——同步與亞穩(wěn)態(tài)[D].合肥:中國科學技術大學,2008.

      [3]安榮,任勇峰,李圣昆.基于FPGA和USB2.0的數(shù)據(jù)采集系統(tǒng)[J].儀表技術與傳感器,2009(3):49-51.

      [4]徐峰.基于FT245BM的多USB接口的實現(xiàn)[J].無錫職業(yè)技術學院學報,2008,7(2):41-43.

      猜你喜歡
      發(fā)送數(shù)據(jù)模擬量上位
      移動自組網(wǎng)中MAC層協(xié)議研究
      基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
      測控技術(2018年12期)2018-11-25 09:37:42
      基于馬爾科夫鏈的LoRaWAN網(wǎng)絡節(jié)點性能分析
      帶標記方式的CRDSA++協(xié)議性能分析*
      通信技術(2018年10期)2018-10-15 07:30:00
      特斯拉 風云之老阿姨上位
      車迷(2018年12期)2018-07-26 00:42:22
      “三扶”齊上位 決戰(zhàn)必打贏
      基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
      使用IPSec安全傳輸數(shù)據(jù)
      關于600MW火電機組模擬量控制系統(tǒng)設計和研究
      電子制作(2016年21期)2016-05-17 03:53:12
      以新思路促推現(xiàn)代農(nóng)業(yè)上位
      學習月刊(2015年3期)2015-07-09 03:51:04
      重庆市| 宁武县| 临西县| 康定县| 甘洛县| 郯城县| 左贡县| 六安市| 和林格尔县| 清水县| 景洪市| 余干县| 尼玛县| 论坛| 通河县| 阳朔县| 府谷县| 台中市| 翁牛特旗| 南乐县| 桃源县| 达州市| 灵宝市| 宁南县| 高陵县| 沈阳市| 闸北区| 德清县| 泰州市| 乌兰浩特市| 古田县| 庆云县| 嵊州市| 明溪县| 金华市| 当涂县| 屏南县| 莱州市| 太仆寺旗| 镇康县| 五莲县|