新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 一种空间相机的数据通信系统设计

一种空间相机的数据通信系统设计

作者:时间:2012-07-24来源:网络收藏

在编写读写模块时,需注意双向总线的编写技巧。双向口最好在顶层定义,否则模块综合时容易出错。

3.3 INOUT双向端口

芯片外部引脚很多都使用inout类型的,目的是节省管脚,即一个端口同时做输入和输出。inout 在具体实现上一般用三态门来实现。三态门的第三个状态就是高阻“Z”。 当inout端口不输出时,将三态门置为高阻。这样信号就不会因为两端同时输出而出错了。本中地址数据复用的ADDR为8位双向端口,使用时可以写为:

inout ADDR;

wire [7:0] ADDR;

wire [7:0] input_of_ADDR;

wire [7:0] output_of_ADDR;

wire en;

assign ADDR = (en==1)?output_of_ADDR:8'hzz ;

assign input_of_ADDR = ADDR;

可见,此时input_of_ADDR和output_of_ADDR就可以当作普通信号使用了。对于双向端口的测试用例如下:

wire [7:0] ADDR;

reg link;

reg [7:0] data_in_t;

assign ADDR=link?data_in_t:8'hzz;

对于有inout(双向)端口的verilog程序,需要注意几点:(1)对于inout端口,要定义一个与之相连的“映像寄存器”。当inout端口作为输出端口时,将两者连通;而当inout端口不作为输出端口时,要给i~t端口赋高阻态来断开与“映像寄存器”的连接。(2)在实例化含inout(双向)端口的模块时,与inout端口相连的只能是一个wire类型的变量。(3)不论是模块还是仿真, 由于inout端口兼有输人端口和输出端口的功能,所以必须分别指定当inout端口作为输人端口(输出端口)时,它与其他单元的连接情况和需要完成的操作。

4 实验结果

在FPGA中利用Verilog编程产生SJA1000的片选信号CS,地址锁存信号ALE,读写信号RD、WR。这些控制信号共同驱动SJA1000进行数据接收发送,同时产生OE0、OE1、DIR0、DIR1,来控制双向总线收发器。设计选取的是Xilinx公司Virtex系列的芯片,逻辑开发在ISE平台上进行。在FPGA的调试阶段,使用Xilinx提供的在线逻辑分析仪ChipScope pro来在线观察FPGA设计内部信号的波形,它比传统的逻辑分析仪更方便。图5就是在线进行数据传送时的波形。

一种空间相机的数据通信系统设计

在本文通信的设计中,放弃了传统的基于单片机的方法,而采用以FPGA为核心控制单元,代替单片机及其外围芯片电路。通过设计整个通信的硬件电路,并利用Verilog硬件语言描述通信流程,快速准确地实现了数据的通信功能。在软硬件的联调和验证时,利用chipscope在线逻辑仪功能,方便准确地实现了预期目的。

数字通信相关文章:数字通信原理


通信相关文章:通信原理


上拉电阻相关文章:上拉电阻原理
双绞线传输器相关文章:双绞线传输器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭