ST-BUS總線接口模塊的Verilog HDL設(shè)計(jì)
(1)同步檢測(cè)及數(shù)據(jù)發(fā)送
if(!f0) begin file://同步信號(hào)低電平有效
f0_flag=1;//同步狀態(tài)標(biāo)志
bitcounter=bitsofbyte-1;//位計(jì)數(shù)器復(fù)位
bytecounter=0; file://時(shí)隙計(jì)數(shù)器復(fù)位
if(byte_pos1==0) file://通道1為時(shí)隙0,則開始發(fā)送數(shù)據(jù)
begin dx=data1[7]; file://先送高位到ST-BUS總線
dout1=data11; file://移位準(zhǔn)備下一位待發(fā)數(shù)據(jù)
dout2=data2;end file://準(zhǔn)備下一通道待發(fā)數(shù)據(jù)
else if(byte_pos2==0)//通道2為時(shí)隙0,則開始發(fā)送數(shù)據(jù)(同通道1)
……
else dx=1‘bZ; end file://如果沒有選擇0時(shí)隙,則輸出高阻,釋放總線
(2)定位計(jì)數(shù)及數(shù)據(jù)發(fā)送
if(f0_flag) file://判斷同步狀態(tài)
begin case(bitcounter)
0:begin bitcounter=bitsofbyte-1;//位計(jì)數(shù)器復(fù)位
if(bytecounter==(bytes_per_frame-1)) bytecounter=0;//時(shí)隙計(jì)數(shù)滿則復(fù)位
else bytecounter=bytecounter +1;//時(shí)隙計(jì)數(shù)器遞增
if(bytecounter==byte_pos1-1)
file://通道1發(fā)送數(shù)據(jù)
begin dx=dout1[7];
file://發(fā)送數(shù)據(jù)的最高位
dout1=dout11; end
file://移位準(zhǔn)備下一位待發(fā)數(shù)據(jù)
else if(bytecounter==byte_pos2-1) file://通道2發(fā)送數(shù)據(jù)(同通道1)
……
else dx=1‘bZ;end
file://非占用通道則釋放總線
default:begin
bitcounter=bitcounter-1;
file://位計(jì)數(shù)遞減
……
file://同前面通道1、通道2發(fā)送數(shù)據(jù)
end endcase end
根據(jù)ST-BUS總線收發(fā)規(guī)則及發(fā)送模塊基本工作原理,發(fā)送模塊各功能塊均采用C2上升沿,或者采用C2下降沿轉(zhuǎn)換狀態(tài)而采用C2上升沿發(fā)送數(shù)據(jù)。對(duì)前者,以上發(fā)送模塊可用1個(gè)或2個(gè)always語句完成;對(duì)后者,以上發(fā)送模塊則至少需用2個(gè)always語句實(shí)現(xiàn),并將數(shù)據(jù)發(fā)送從以上兩部分中分離出來。采用類似接收模塊的方法,對(duì)發(fā)送模塊單獨(dú)綜合后作時(shí)序仿真,結(jié)果如圖3(b)所示。值得注意的是,為了說明模塊設(shè)計(jì)對(duì)于通道設(shè)置順序的無關(guān)性,圖中第一通道為31時(shí)隙,第二通道為0時(shí)隙。
ST-BUS控制模塊
ST-BUS控制模塊主要完成ST-BUS總線的收發(fā)控制與協(xié)調(diào),同時(shí)也負(fù)責(zé)與外部接口的數(shù)據(jù)交換功能,這部分代碼因涉密不再列出,這里僅簡單介紹一下其功能。
控制模塊的功能劃分大致分為以下5部分:外部接口時(shí)鐘產(chǎn)生及管理,控制收發(fā)模塊與控制模塊的數(shù)據(jù)交換,控制接口模塊與其它接口的數(shù)據(jù)交換,對(duì)速率不匹配的數(shù)據(jù)作緩存(FIFO),提供對(duì)外通信接口供用戶設(shè)置參數(shù)。根據(jù)實(shí)際應(yīng)用情況,以上所列的功能可以適當(dāng)取舍或調(diào)整。如果速率匹配,則可以舍棄第4部分;如果參數(shù)固化,則可舍棄第5部分。
結(jié)語
基于MAX7000S系列CPLD器件分析收發(fā)模塊的最高工作性能可知,接收模塊的位時(shí)鐘C2最高工作頻率可達(dá)21.74MHz,而發(fā)送模塊的位時(shí)鐘C2最高工作頻率則達(dá)到32.26MHz,完全符合設(shè)計(jì)要求。本文所設(shè)計(jì)的ST-BUS接口模塊具有很強(qiáng)的通用性、可擴(kuò)展性和可移植性,利用MAX7000S系列CPLD器件成功實(shí)現(xiàn)了ST-BUS與UART、RS-232、RS-485等接口單元的順利對(duì)接,并已成功應(yīng)用于某專用集群通信設(shè)備的E1接口板,完成了多路不同接口的數(shù)據(jù)復(fù)接通信,運(yùn)行狀況良好。本文引用地址:http://m.butianyuan.cn/article/150876.htm
評(píng)論