利用EPP并行口实坝PC机之间通信的CAN总线设计(2)
2015-04-26 01:04
导读:时使用输入寄存器,输出操作时使用输出寄存器。单向状态端口和单向控制端口的寄存器地址分别为379h和37ah,其定义见表2。这三个寄存器是与标准并行口
时使用输入寄存器,输出操作时使用输出寄存器。单向状态端口和单向控制端口的寄存器地址分别为379h和37ah,其定义见表2。这三个寄存器是与标准并行口spp兼容的,但实际上除了这三个寄存器之外,epp还定义了其它几个寄存器。 epp不需要从主机送来的信号就能执行数据交换。当主机把数据写到数据缓冲区时,总线自动产生数据选通信号。同样,从端口读人数据时也是自动产生数据选通信号来表示系统正准备接收下一批数据。3 can独立控制器sjal000sjal000是一种独立控制器,主要用于移动目标和一般工业环境中的区域网络控制(can),是philips半导体pca82c200 can控制器(basiecan)的替代产品。其基本特性有:(1)引脚与pca82c200独立can控制器兼容。(2)有扩展的接收缓冲器64字节,先进先出(fifo);(3)支持can2.0a和can2.0b协议;(4)通信位速率可达imbps。而且它增加了一种新的工作模式(pelican),这种模式支持具有很多新特性的can2.0b协议。4can总线收发器pca82c250pca82c250是can控制器和物理总线间的接口。器件可以提供对总线差动发送、接收的能力。采用双线差分驱动,有助于抑制汽车等恶劣电气环境下的瞬间干扰。其主要特性有:(1)与iso/dis 11898标准全兼容;(2)高速性,最高可达imbps;(3)具有抗汽车环境下的瞬间干扰能力,保护总线能力;(4)降低射频干扰的斜率控制;(5)热保护;(6)总线与电源及地之间的短路保护;(7)低电流待机方式;(8)掉电自动关闭输出;(9)可支持多达110个节点相连接等。 5 适配卡设计 can总线的卓越性能为 工业 控制提供了一种可靠的数据通信,为了扩展can总线的监控和管理功能,应设计一块适配卡,连接pc机的并行口,该卡上具备can接口和pc接口特性,它完成的任务主要是pc机与总线之间的通信。 为此,适配卡的主要组成有:can总线控制器(sjal000)、can总线驱动器(pca82c250)、epp并行端口。sjal000是集成的独立can控制器,它负责完成can总线通信协议的物理层和数据链路层的功能。sjal000片含有控制寄存器、命令寄存器、状态寄存器、中断寄存器和收发寄存器。pc机通过读写这些寄存器来实现对sjal000的控制;芯片的tx0、txl、rx0、rxl引脚用于与can总线的接口。pca82c250是专门用于can总线收发驱动的9脚芯片,txd、rxd引脚分别接收和发送驱动后的信号;canh、canl引脚接至双绞线或同轴电缆等传输介质。使用pca82c250可以扩大通信距离,能提高系统的抗干扰能力,保护总线,降低射频干扰,实现热防护等。sjal000的中断输出信号/int接到epp的intr中断后,通过中断方式实现pc机与can控制器的通信。由于sjal000的中断输出信号是低电平有效,而epp的中断信号是高电平有效,所以在他们的连线之间必须加一个反向器。根据通信读写时序的产生,设计了一种由软件产生读写时序的电路和一种由硬件产生读写时序的电路。5.1软件产生读写时序电路 连线说明:sjal000的ado~ad7直接与epp并行口的ado~ad7相连;ale直接与nwrite相连;/rd,/wr分别与naddstrobe和ndatastrobe相连;/int的引线反向后与epp的intr相连(如图l所示)。 此种电路设计需要软件产生访问外设芯片所需的读写时序。在我们的 应用 程序中,对sjal000的读写函数分别为readreg和setreg,用汇编语言实现如下(如表3所示):5.2硬件产生读写时序 连线说明:nwait信号为外设发送给pc的握手信号,以便pc在访问慢速外设时插入等待周期。


读写函数表表3
void setreg(im port,int value)//通过双向口向sjal000发送数据,port为sjal000寄存器的地址,value为要设置的值im readreg(int port)//读取sjal000寄存器的值,port为sjal000寄存器的地址,返回的值为该寄存器的值