PCI9052提供了5个局部地址空间,可以选用其中的一个作为SJA1000的地址空间,分配32个8位地址空间。同时设置相应的初始化, PCI配置寄存器中的寄存器PCIBAR2设置为0XFFFFFFE0,向系统请求分配内存的数量为32,类型为不可预读,其它寄存器的值可设置为0。设置局部地址空间的范围为0X00000000~0X00000020。对中断的配置是把PCI中断请求线分配到系统的某一ISA 中断请求(IRQ)线上。在本控制卡中利用一块串行EEPROM(93C46B)存放控制卡的PCI配置信息。上电后访问93C46B,实现本控制卡的自动配置。
图1 总线接口原理图
接口的软件设计软件的设计包括PCI驱动程序的设计和COM组件的设计。由于PC I设备的中断、I/O端口、映射内存等资源都是动态分配的,必须编写驱动程序管理硬件,才能供用户编程使用。CAN卡驱动程序的开发工具采用WINDRIVER。由于CAN卡上没有微控制器,因此对总线端口的所有操作都是由驱动程序来完成的。这不仅可以由计算机来实现复杂的功能,例如,错误检测、断点续传等,同时节省了硬件,而且有利于卡的升级——只要更换驱动程序即可。驱动程序的功能主要是配置SJA1000的接口、收发CAN总线上的数据、对总线进行实时监测、接收用户程序的收发命令。收发数据和CAN总线错误均采用中断处理,驱动程序可以快速响应,通过事件(Event)内核对象直接通知给用户程序。CAN总线通信适配器的初始化是CAN总线设计的重要环节,也是设计的难点。在其初始化过程中需要设置的参数有时钟、总线配置、标志标识符屏蔽段、扩展标识符屏蔽段、信息块、定时器0、定时器1、信息块的控制段、信息块的工作方式等。CAN总线适配器简化流程图如图2所示。
图 2 CAN总线适配器简化流程图
结 论
本文设计的CAN总线适配器结构简单,可用于分布的现场总线控制系统。在WIN2000下经过长时间的运行测试,运行稳定可靠。它可以适应不同的传输速率和距离,有效保证了工业过程监控的实时性,同时也减轻了上位机的工作负担,满足不同的用户要求。在不同栅偏压和分布参数条件下为芯片ESD保护的SNTSCR的I-V特性在CMOS工艺中已经详细讲述过。SNTSCR可以在小区域内保持高的ESD电平对于现代高集成科学很有吸引力。不采用厚栅氧化层,一般小于0.25μmCMOS工艺中, SNTSCR在有效保护混合电压接口电路免于ESD破坏时充分兼容。