在TM-BUS主状态机状态标记中,最后两位表示在该状态下MCTL和MMD的值,状态转换的条件由状态变量M1,M2,M3表示。图4中所标的转换条件为[M1,M2,M3]取值。POWERUP2_00为上电后或复位后的状态;XFERl6_1X~XFER00_1X为数据传送状态;WAIT_00为出错状态,该状态结束的条件是MCTL与MMD发生传输冲突消失且消息传送结束;在PAUSE_01状态下插入等待;EOM_00为消息传送的起始和结束状态。主/从两个状态机合为一个状态机后,MCS和主权控制状态机控制作何种状态机运行[M1,M2,M3]控制主状态机的状态转换,从状态机的状态转换由MCTL和MMD控制。
2.4 USB接口设计
USB接口芯片采用了ISP1581。ISP1581是Phil-lps 公司提 不应求的高速USB接口芯片,符合USB2.0规范。它的内部集成了数据收发器、串行接口引擎(SIE)、并行接口引擎(PIE)、FIFO存储器(8 KB)、存储管理单元(MMU)、微控制器接口和DMA(直接内存访问)管理器。外部电路接口简单,因ISP1581内部不带有微控制器,需外接。本文的微控制器采用AT89C52单片机。USB硬件模块主要包括ISP1581,AT89C52,总体框架结构如图5所示。
ISP1581通过16位数据总线与FPGA相连,AT89C52负责控制数据的DMA传输。ISP1581与微控制器的通信通过一个高速(15 MB/s或15 Mword/s)的通用并行接口AD[7:O]实现,并具有高速DMA接口。
2.4.1 USB接收数据模块实现
本文采用的USB器件是带有DMA控制器的ISP1581,为了简化电路,采用ISP1581的DMA主控制器方式。如图6所示,当FPGA的FIFO满标志为1时,单片机给ISP1581发送请求有效信号、写信号和写周期信号,给FIFO发送读请求信号和读周期信号,当读出的数据达到预定的数目时,单片机把ISP1581请求信号设置为无效,等待下一组存储数据。