新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > ST-BUS总线接口模块的Verilog HDL设计

ST-BUS总线接口模块的Verilog HDL设计

作者:时间:2011-04-09来源:网络收藏


(1)同步检测
if(!f0)beginfile://同步信号低电平有效
f0_flag=1; file://置同步标志
bitcounter=bitsofbyte-1;//时隙内的数据位数减法计数器复位
bytecounter=0; end
file://时隙数加法计数器复位

(2)定位计数
if(f0_flag) file://判断同步状态
begin case(bitcounter) file://根据数据位计数值进行时隙切换
0:begin
bitcounter=bitsofbyte-1;
file://数据位计数器复位
bytecounter=bytecounter+1;
file://时隙通道计数器递增
end
default:bitcounter=bitcounter-1; file://时隙内位计数器递减
endcase end

(3)接收数据(含标志及使能信号产生)
if(bytecounter==byte_pos1) begin file://检查第1通道
din2=8‘bZ;
file://释放通道2暂存单元
receive2_flag=0;
file://清除通道2接收标志
din1=din11;
file://移位准备接收下一位数据
din1[0]=dr; file://读入数据位
if(bitcounter==0) begin receive1_flag=1;end//接收完整通道数据置标志
end
else if(bytecounter==byte_pos2)
file://多通道接收(同上)
……
else begin
file://当前通道不接收数据,则释放暂存单元并清除接收标志
din1=8‘bZ;din2=8‘bZ;receive1 _flag=0;receive2_flag=0;end

根据收发规则及接收基本工作原理,为了31时隙与0时隙的可靠切换,中采用状态转换与数据接收分开的方法,也即以上可由2个always语句实现,一个采用C2上升沿实现状态转换,一个采用C2下降沿实现数据接收。在Altera公司提供的Quartus II 5.0SP1集成开发环境下,利用MAX7000S系列最低性能的CPLD器件作综合后的时序仿真结果如图3(a)所示。图中第一通道为0时隙,第二通道为31时隙。

本文引用地址:http://www.eepw.com.cn/article/150876.htm


a)接收仿真


b)发送模块仿真
图3 ST-BUS收发模块综合后的时序仿真结果(C2时钟为10MHz)

ST-BUS发送模块
ST-BUS发送模块主要将控制模块送来的数据按照所设置的时隙进行发送,也就是将一般数据信号转换为ST-BUS信号,其原理结构框图如图2(b)所示。

发送模块可工作于两种模式,即主动模式和被动模式。图中细的虚线部分(除去相应的实线部分)表示工作于主动模式的连接,此时,时钟和同步信号均由模块内部产生;若除去细的虚线部分,则模块工作于被动模式。在本文涉及的E1中,系统采用了自动模式选择的工作方式。图中同步的作用,在主动模式时为同步发生,在被动模式时为同步检测。

被动模式下ST-BUS发送模块的基本工作原理与接收模块类似,所不同之处在于数据传输方向相反。与接收模块一样,图2(b)中的时隙定位和数据位定位也可以合并采用单计数器实现。ST-BUS发送操作的关键之处也在于前一帧31时隙与当前帧0时隙之间的切换,因为需要同时检测同步信号,并且状态转换和总线数据加载都在C2上升沿完成。发送模块的 实现可划分为两部分,与接收模块划分不同,这里已把发送数据的操作嵌入到了同步检测和定位计数当中,当然也可严格按功能块划分。



评论


相关推荐

技术专区

关闭