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