java怎么拦截某个对象
282
2022-10-28
基于MSP430的三线串行接口通信系统
1 三线串行通信原理
门控信号EN 的下降沿表明一次数据传输的开始,之后保持低电平有效, 数据在时钟信号的下降沿采样,每个时钟周期接收或者发送一位串行数据, 直到数据发送完成。在数据发送或接收的整个过程中, 门控信号一直处于低电平不变。
2 三线串行接口测试仪的总体方案设计
本设计将三线串行接口测试仪划分为三大功能单元:FPGA 时序产生单元、MSP430 控制单元、上位机软件单元。图2 是三线串行接口测试仪的总体方案设计框图。
上位机软件采用微软公司的VC++ 集成开发环境开发, 本设计将软件划分成几个小功能模块, 并将部分模块做成动态链接库的形式供主程序调用。上位机软件主要包括主接收程序、数据发送程序、三线串行接口配置程序、RS232 通信动态链接库。
此外, 电路中用到了多组电源,FPGA 供电电压为1.2 V, 单片机供电电压为3.3 V, 三线串行接口的数据接收端一般需要光耦隔离, 本设计选用的是5 V 供电的光耦,RS232 通信芯片也是5 V 供电, 所有这些电压都由相应的电源芯片直接产生。
3 三线串行接口测试仪设计方案的实现
3.1 三线串行接口时序产生单元的FPGA 实现
设计的三线串行接口电路要求能够实现三线串行时序, 同时要求具备时序参数( 比如时钟频率、采样方式等) 可调、数据收发等功能, 根据上述目标, 本设计将FPGA 时序产生单元划分成以下几个模块:three -wireregister interface ( 三线寄存器接口模块)、three-wire send( 三线发送模块)、three -wire receive ( 三线接收模块) 和three-wire clock( 三线时钟产生模块)。
Three-wire send : 该模块主要用于三线串行接口发送数据时的时序产生, 三线发送模块时序采用摩尔型状态机实现, 该状态机共有7 个状态:IDLE 状态、START状态、DELAY1 状态、SEND 状态、DELAY2 状态、END 状态和DELAY3 状态, 各个具体状态转换如图4 所示。
每个状态都有一个状态指示控制信号, 以SEND 状态为例, 其指示控制信号为send_run 。当状态机进入SEND 状态后,send_run 变为1 , 然后SEND 状态的电路开始工作。当该电路执行完毕后会将send_run 变为0时, 表明退出SEND 状态, 状态机进入下一状态。其余状态类似。各状态定义如下:
IDLE 状态, 为空闲等待状态, 即系统上电后的状态机的初始状态, 当系统完成初始化或者完成一次完整的时序功能后状态机都会返回IDLE 状态。
START 状态, 表示三线串行通信开始, 在检测到三线串行接口的使能数据线EN 有效后状态机进入到START 状态。
DELAY1 状态, 表示三线串行通信数据使能后, 时钟信号相对使能信号的延迟时间, 该状态实际上起到一个延时的作用。
SEND 状态, 表示三线串行通信数据开始发送, 该状态下三线串行数据将开始移位发送。
DELAY2 状态, 表示三线串行通信数据发送完一个字节后的间隔时间,该状态实际上起到一个延时的作用。
END 状态, 这是表示三线串行通信数据发送结束。
DELAY3 状态, 这是表示三线串行通信数据发送结束后, 使能信号变成无效后相对最后一个时钟触发沿的延迟时间。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~