蔣玉峰,張志明,崔麥會,尹業宏
(1.海軍裝備研究院,北京 102249;2.華中光電技術研究所武漢光電國家實驗室,湖北 武漢 430073)
同步數據鏈路控制(Synchronous Data Link Contro1,SDLC)是20世紀70年代IBM公司開發的面向比特的通信傳輸協議,采用基于SDLC同步協議的RS-485串行總線具有低差錯率、強糾錯力和高速遠距離傳輸的特點[1-2],被越來越多的光電系統作為圖像信息傳輸使用。采用專用SDLC協議控制芯片在實際中存在以下不足:1)速度受限,現有專用控制芯片傳輸速率約2 Mbit/s,難以滿足大容量圖像傳輸要求;2)系統中不同設備使用不相同的控制芯片,傳輸兼容性差;3)擴充接口數量依賴于硬件的增加。用FPGA來構造SDLC協議,在一片FPGA內能設計兩路或多路總線接口,同步并行傳輸數據,速率成倍增加,且通過編程能修改協議,可移植性好,應用更加靈活。本文通過兩路并行協議實現了高清視頻的遠距離傳輸。
要傳輸的視頻為高清黑白圖像,像素為1024×1024。如圖1所示,視頻信號經10位A/D編碼和8∶1壓縮后,由FPGA控制存儲于RAM中待傳輸。上述圖像按照25 f/s(幀/秒)計算,傳輸速率需要31.25 Mbit/s。為實現高清圖像的遠距離傳輸,采用2路相同的RS-485核同步進行傳輸,即一個FPGA中的兩個RS-485核各自完成一場圖像數據的傳輸,再在遠端圖像接收裝置中進行合成解碼。

圖1 圖像傳輸系統框圖
圖像傳輸協議包括兩個相同功能的RS-485核,每個核由接收和發送模塊組成,其數據傳送借用SDLC協議幀格式,如表1所示,協議控制框圖如圖2所示,下文將詳細說明具體工作過程。

表1 SDLC協議幀格式[3]

圖2 SDLC協議的控制框圖
1.2.1 接收工作過程
本設計中,電路上電后串行數據和時鐘處于接收狀態,串行數據和時鐘進入接收控制器后,送入刪零器,同時送入串/并轉換器和控制電路,當刪零器檢測到連續5個“1”后,產生一個脈沖給控制電路,如果5個“l”后為1個“0”,則控制電路將送到串/并轉換器的時鐘扣除1個,從而達到刪零的目的,如果5個“l”后仍然為“l”,并且幀長度寄存器中的數據值不為零,則中止接收,并將中斷向量寫入中斷寄存器,同時產生中斷信號。控制電路還負責對幀寄存器中的數據進行計數減,當幀長寄存器中的數為零時,則中止接收,比較l6位CRC校驗是否正確,如正確將接收正常中斷寫入中斷向量寄存器,如不正確將CRC校驗錯寫入中斷向量寄存器,同時產生中斷信號通知微處理器發送數據到FPGA的FIFO模塊,同時啟動數據發送模塊[4]。
1.2.2 發送工作過程
接口電路工作在發送方式時,發送器收到啟動發信號后,先發送“01111110”,然后從地址寄存器中取出控制地址發送,之后開始發送數據,待發送數據在送入移位寄存器的同時,也送入CRC校驗器和插零器,如果插零器檢測到5個連續的“1”,發“0”位插入脈沖給控制電路,控制電路將暫停移位寄存器工作,并且產生“0”位插入時鐘,在5個“l”后插入1個“0”,從而完成“0”插入過程。控制電路還負責對幀長寄存器中的數據進行計數減,當幀長寄存器中的數為零時,將16位CRC校驗碼發送出去,將發送完成中斷寫入中斷向量寄存器,并產生中斷脈沖,通知FPGA將RS-485置于接收狀態。
1.2.3 CRC校驗
SDLC采用16位循環冗余校驗碼對整個幀的內容進行差錯控制,其生成多項式為

根據循環系統碼編碼原理,編碼電路示意圖如圖3所示。16級移位寄存器的初始狀態全清零,門1開、門2關,信息位移入編碼電路。一方面數據信息經或門輸出,另一方面自動乘以x16后進入除g(x)除法電路,完成除法后,寄存器中的內容即為16 bit的校驗元。

圖3 CRC校驗示意圖
此時門1關、門2開,再經過16次移位后,將移位寄存器的校驗元全部輸出,與輸入信息的校驗位進行比較,若內容相同,則說明信息傳送正確;否則報錯,丟棄該幀。
采用以上方法,選用Altera公司型號為EP2S30F672I的FPGA,使用Quartus9.0對功能設計進行仿真,得到仿真波形如圖4所示。圖中第1行為系統復位信號SysRst.n;第2、第3行分別為串行接收數據信號RS485Rxd和接收時鐘RS485RxdClk;第4行為基準時鐘信號RS485ClkIn,頻率為96 MHz;第5行為發送的并行數據RS485Data;倒數第2行為發送數據信號RS485Txd;倒數第1行為發送時鐘信號RS485TxdClk;其余為FPGA控制邏輯信號;發送時鐘信號由第4行的基準時鐘信號編程分頻后產生。為了使仿真結果易于直觀判讀,在FPGA內部產生TestData測試數據,并將分頻系數設置為16。從仿真結果可知,輸出時鐘和數據與設計輸入相吻合。

圖4 基于FPGA的仿真波形圖(截圖)
在某型光電產品中采用兩路并行SDLC協議完成1024×1024圖像的傳送,傳輸速率可達32 Mbit/s,動態圖像無失真、拖尾現象,工作穩定可靠,該方法可擴展至多路并行數據傳輸。
[1]NI Haiyan,HU Chao,MA Changwang.Research on a 485-serial network architecture in intelligent uptown management[C]//Proc.2006 IEEE Conf.Mechatronics and Automation.Luoyang:IEEE Press,2006:400-405.
[2]李果萍,成龍,柴波.基于SDLC協議的同步RS485總線控制器的設計[J]. 現代電子技術,2009,291(4):152-154.
[3]耿立中,王鵬,馬騁,等.RS485高速數據傳輸協議的設計與實現[J].清華大學學報:自然科學版,2008,48(8):1311-1314.
[4]劉巖俊,閆海霞,何昕.基于FPGA的HDLC協議的實現[J].電子器件,2009,32(3):707-710.