图1 通过通信模块连接以太网和CAN 总线
2 通信模块的硬件设计图2 系统的硬件连接示意图
GAL 芯片选用GAL16V8D-15LP ,它的传播延迟时间为15ns ,反馈延迟时间为7ns ,适于较高速度的工作。除了产生总线收发器芯片的控制信号外,同一片GAL 还用来产生SJA1000 需要的控制信号。根据处理器S3C44B0x 的输出信号, 包括为SJA1000分配的地址组选通信号nGCS3和RTL8019分配的地址组选通信号nGCS4、读写信号线nOE和nWE,可以产生总线收发器LCX245所需要的DIR和OE信号,各信号如图3 所示。图3 LCX245 控制信号的产生
nGCSx 是处理器的地址组选通信号,S3C44B0x 将外部地址空间从地址0 开始,每32M划分为一个组(Bank ) ,外部寻址时地址线A0 ~ A24 输出组内地址,该地址所在的组的组选通信号同时有效。图中虚线代表写操作时的DIR 信号,实线为读操作的信号。从图中可以得到使用ABEL 语言描写的的信号生成逻辑式为:图4 OE 和DIR 次态卡诺图
根据卡诺图重新写出的次态逻辑产生式,消除单独输入(包括OE 和DIR 的当前状态) 变化可能引起的竞争- 冒险现象后为:图5 SJA1000 控制信号的产生
图中虚线是向SJA1000 传输和锁存地址的过程,实线是读写操作的过程。用ABEL 语言书写的各信号产生逻辑式为:图6 通信模块软件流程图
在调试过程中发现,如果转发过程被特定的中断程序打断,可能发生报文计数错误;如果向RTL8019AS写入待发送报文的过程被以太网接收中断打断,就无法恢复写入过程了。因此在转发过程中应屏蔽相应的中断。欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |