李 震,張 鵬
(中車青島四方車輛研究所有限公司,青島 266031)
HS6L高速數(shù)據(jù)總線設計
李 震,張 鵬
(中車青島四方車輛研究所有限公司,青島 266031)
本文提出了一種高速總線的設計方法。HS6L是一種高速全雙工總線,主要應用于短距離高速數(shù)據(jù)傳輸領域。在短距離傳輸場合,相對于普通的并行總線以及串行總線,HS6L總線具有明顯的優(yōu)勢。介紹了HS6L總線的幀格式和硬件組成,重點介紹了HS6L總線收發(fā)控制器的設計方法。
HS6L總線;高速總線;串行總線
工業(yè)控制領域經(jīng)常需要較短距離的高速數(shù)據(jù)傳輸,目前可應用于短距離數(shù)據(jù)傳輸?shù)目偩€機制有:普通并行總線傳輸、PCI和PCI-E總線傳輸、CAN總線傳輸、RS232和RS485總線傳輸?shù)鹊?。本文介紹的HS6L總線是一種全雙工高速總線,由4根數(shù)據(jù)總線、2根時鐘線組成。相對于并行總線而言,HS6L總線具有更少的硬件資源消耗;相對于PCI和PCI-E而言,HS6L總線具有較低的成本,并且對系統(tǒng)平臺的依賴較小;相對于CAN總線、RS232、RS485總線,HS6L總線具有更高的傳輸速率。
簡要概括HS6L總線的特點如下:
1)點對點傳輸,采用全雙工的總線收發(fā)機制,每組由2根數(shù)據(jù)線、1根時鐘線組成,可取代普通的并行總線,可降低硬件設計成本。
2)單向最高傳輸速度可達240Mbps,雙向最高傳輸速度可達480Mbps。
3)在時鐘上升沿和下降沿都進行數(shù)據(jù)采集。
4)采用固定數(shù)據(jù)幀長度通訊,且數(shù)據(jù)幀長度可配置。
5)具有自檢和重發(fā)功能。
6)帶隔離功能的HS6L總線可實現(xiàn)不同電平之間的設備通訊,可滿足高可靠性場合的要求。
HS6L總線的主要應用領域為:1)板卡內(nèi)功能模塊之間高速通訊。2)機箱內(nèi)部板卡之間高速通訊。3)設備間短距離高速通訊。
HS6L總線采用4根數(shù)據(jù)總線和2根時鐘線。其硬件構(gòu)成框圖如圖1所示。帶隔離功能的HS6L總線系統(tǒng)框圖如圖2所示。帶隔離功能的HS6L總線是在2路通訊線中加入數(shù)字隔離器,以滿足不同電平標準的設備之間的數(shù)據(jù)通訊,同時這種總線可以應對工業(yè)現(xiàn)場對高可靠性的要求。
在數(shù)字隔離器輸出端口處需要加總線匹配電阻來降低接收端信號的過沖,進一步提高信號的質(zhì)量。
系統(tǒng)運行在全雙工模式,同一時刻既可以發(fā)送也可以接收,在總線空閑時,數(shù)字隔離器輸出高阻態(tài)??偩€工作時各個節(jié)點使用相同的波特率,接收端采用2倍通訊頻率進行信號采集。
圖1 HS6L總線框圖
圖2 HS6L隔離總線框圖
HS6L總線的幀格式如表1所示。
表1 HS6L總線幀格式
幀頭標示符有3個作用:1)通知接收端準備接收,2)接收端通過接收幀頭標示符來精確確定可靠的采樣間隔,3)如果總線上有兩個節(jié)點同時嘗試發(fā)送,可通過總線沖突自檢機制,在幀頭標識符發(fā)送階段進行沖突檢測。幀頭標示符由7~10個0x7E組成。
幀頭標示符結(jié)束后緊跟著一個4位的控制位??刂莆坏牡?~1位為控制信息位。控制信息標示有兩種,表示的意義如下:
01:主機發(fā)出的數(shù)據(jù)幀標示。數(shù)據(jù)幀標示后緊跟接收節(jié)點的地址(4位)和本幀傳輸?shù)淖珠L度(4位)。
10:從機發(fā)出的響應幀標示。響應幀標示后緊跟接收節(jié)點自身的地址(4位)和本次接收的字長度(4位)。
控制位的第2~3位為發(fā)送個數(shù)計數(shù)器,在正常情況下,針對同一個主機(發(fā)送節(jié)點),每成功發(fā)送一幀數(shù)據(jù)幀,計數(shù)器中的計數(shù)加1。如果主機在發(fā)送一個數(shù)據(jù)幀后在規(guī)定時間內(nèi)沒有收到從機(接收節(jié)點)的響應幀(響應超時),主機將在規(guī)定時間之后重新發(fā)送本次數(shù)據(jù)幀,此時計數(shù)器中的計數(shù)值保持不變。
傳輸內(nèi)容及通訊發(fā)送的數(shù)據(jù),只在數(shù)據(jù)幀中體現(xiàn),響應幀中沒有傳輸內(nèi)容。
CRC校驗為數(shù)據(jù)幀中控制信息和傳輸內(nèi)容的CRC校驗。響應幀中CRC校驗為控制信息的CRC校驗。
如果從機接收到的數(shù)據(jù)幀CRC校驗正確,將在規(guī)定時間內(nèi)自動發(fā)送正常響應幀。如果CRC校驗錯誤,從機也會在規(guī)定時間自動發(fā)送響應幀,但是響應幀中的CRC校驗將為控制信息CRC的校驗加1。主機發(fā)現(xiàn)接收的校驗幀CRC錯誤,會自動重發(fā)上一幀的數(shù)據(jù)幀。
結(jié)束符為本次通訊的結(jié)束標志。由一個0x7E組成。主機在發(fā)送完結(jié)束符以后,必須在發(fā)送頻率一個周期之內(nèi),將發(fā)送端口置為高阻態(tài)。當總線上的其他節(jié)點接收到通訊結(jié)束符以后,可以在一個通信時鐘周期之后搶占總線。
這里使用FPGA進行控制器的設計,HS6L總線控制器的組成框圖如圖3所示。
從圖中可以看出控制器主要由3個部分組成:發(fā)送部分、接收部分和雙口RAM(DRAM)。DRAM為HS6L總線和控制端口之間提供緩沖;發(fā)送部分提供從DRAM中讀取發(fā)送內(nèi)容,轉(zhuǎn)換成HS6L總線可發(fā)送的編碼,并通過數(shù)字隔離器發(fā)送出去;接收部分實時監(jiān)測HS6L總線上存在的數(shù)據(jù),作為節(jié)點接收的情況下,提供接收功能,在節(jié)點發(fā)送的情況下,提供幀沖突監(jiān)測功能。下面分別對各個部分展開說明。
3.1 發(fā)送部分
發(fā)送部分由移位發(fā)送單元、編碼單元、發(fā)送緩沖單元和DRAM讀控制單元組成。
DRAM讀控制單元通過內(nèi)部并行總線實時監(jiān)視發(fā)送指令存儲器,一旦收到發(fā)送指令,則立即將發(fā)送數(shù)據(jù)從DRAM中讀取出來,并傳遞給發(fā)送緩沖單元。由于DRAM控制單元采用系統(tǒng)內(nèi)部的高速并行總線,因此對DRAM的寫速度非???。
圖3 HS6L總線控制器框圖
發(fā)送緩沖單元的核心由一個大小為64個字的內(nèi)存組成,這個單元的作用為接收到DRAM中的數(shù)據(jù)以后,根據(jù)數(shù)據(jù)的長度和內(nèi)容,得到幀頭的控制信息、幀內(nèi)容和幀CRC的校驗和,并將這些信息以32位的形式存儲到內(nèi)存中,以提供下一個接口單元使用。發(fā)送緩沖單元中的內(nèi)容會一直保持有效,一直到接收控制器收到本次發(fā)送幀對應的響應幀為止。如果CPU控制器控制端口強行復位HS6L總線控制器,發(fā)送緩沖單元中的內(nèi)容也將失效。
發(fā)送緩沖單元將發(fā)送內(nèi)容準備好以后會將需要發(fā)送的內(nèi)容傳給編碼單元,編碼單元會將需要發(fā)送的數(shù)據(jù)由32位轉(zhuǎn)換成2位的形式,并且在數(shù)據(jù)幀的頭部添加幀頭標示符和幀尾結(jié)束符。同時編碼單元接收從移位接收單元發(fā)送過來的使能信號,這個使能信號在檢測到HS6L總線空閑的時候有效。當編碼單元內(nèi)有有效信息時,一旦使能信號有效,編碼單元將立即將發(fā)送數(shù)據(jù)發(fā)給移位發(fā)送單元。
移位發(fā)送單元接收由編碼單元傳遞過來處理好的數(shù)據(jù),通過2位數(shù)據(jù)總線發(fā)送到數(shù)字隔離器的接口,開始發(fā)送。當發(fā)送結(jié)束的時候,移位發(fā)送單元會立即將數(shù)字隔離器(發(fā)送)置為高阻態(tài)。
3.2 接收部分
接收部分由移位接收單元、幀沖突檢測單元、幀內(nèi)容提取單元和DRAM寫控制單元組成。
接收部分一直處于工作狀態(tài)。當控制器發(fā)送數(shù)據(jù)的時候,接收部分會不斷檢測總線上的實際信號,一旦發(fā)現(xiàn)總線沖突,則立即通知移位發(fā)送單元將總線端口置為高阻態(tài),并在總線空閑的時候重新發(fā)送。當控制器不發(fā)送數(shù)據(jù)的時候,接收部分一直接收來自總線的數(shù)據(jù)。
移位接收單元使用2倍HS6L總線頻率進行采樣,從采樣數(shù)據(jù)中提取出可靠的采樣數(shù)據(jù)并且傳遞給下一個環(huán)節(jié)。移位接收單元通過幀頭標示符進行準確的采樣定位,并使用定位結(jié)果對此幀剩下部分進行接收。一旦移位接收單元檢測到幀頭標示符有效,就會立即將接收的結(jié)果發(fā)送給幀沖突檢測單元。
幀沖突檢測單元只在此控制器發(fā)送數(shù)據(jù)的時候有效,一旦檢測到發(fā)送的數(shù)據(jù)和總線上其他節(jié)點有沖突,幀沖突檢測單元會在一個系統(tǒng)時鐘之后發(fā)命令給移位發(fā)送單元和發(fā)送緩沖單元,立刻禁止輸出。如果控制器不發(fā)送數(shù)據(jù),幀沖突檢測單元無效,并直接將數(shù)據(jù)傳遞給幀內(nèi)容提取單元。
幀內(nèi)容提取單元負責將接收到的數(shù)據(jù)進行ID檢驗和CRC校驗,如果CRC校驗失敗,幀內(nèi)容提取單元會通知發(fā)送緩沖單元發(fā)送CRC錯誤響應幀。如果ID校驗失?。ń邮盏降臄?shù)據(jù)幀不是發(fā)給本節(jié)點),幀內(nèi)容提取單元會自動將該幀拋棄掉。如果ID和CRC校驗成功,則將接收到的2位帶寬數(shù)據(jù)轉(zhuǎn)換成32位數(shù)據(jù),并將轉(zhuǎn)換后的數(shù)據(jù)傳遞給DRAM控制單元。
DRAM寫控制單元將幀內(nèi)容提取單元發(fā)送過來的數(shù)據(jù)內(nèi)容寫入DRAM內(nèi)存單元。CPU控制端口可以通過并行總線高速訪問DRAM內(nèi)接收到的數(shù)據(jù)。
本文介紹了HS6L總線的設計方案。實踐證明在短距離高速數(shù)據(jù)傳輸?shù)那闆r下,HS6L總線具有很大優(yōu)勢。在保證系統(tǒng)可靠性的同時,可以保證較高的通信速率。同時HS6L總線采用4根數(shù)據(jù)線+2根時鐘線的結(jié)構(gòu),在機箱背板的應用場合可以極大的降低硬件的設計難度。在短距離設備間使用線纜通信的場合,可以使用4芯屏蔽線作為理想的傳輸線纜,屏蔽層可作為地線,且具有很好的電磁兼容性能。
[1] Dean J. Ghemawat S. MapReduce:Simplified data processing on large clusters[J].ACM Communication,2008,51(1):107-113.
[2] Lubomir F B, Show A C.Operation System Principles[M].New Jersey: Prentice Hall.2003.
[3] Kaashoek F,Morris R,Mao Y.Optimizing MapReduce for multicore architectures[J].MIT Computer Science and Artificial Intelligence Laboratory:Technical Report MIT-CSAILTR-2010-020,2010.
Design of HS6L high speed data bus
LI Zhen, ZHANG Peng
TN92
:A
1009-0134(2017)03-0142-03
2016-12-26
李震(1986 -),男,工程師,碩士,主要從事動車組列車車載設備的研究。