该模块将两个FCC设计为10/100Mb/s及半/全双工自适应以太网接口,如图3所示。
1.2 非透明PCI桥设计
该模块在CPCI接口部分采用非透明PCI桥设计,大大增强了使用灵活性,很大程度上简化了针对本串口板驱动程序的编写。针对该模块的板级固件已经完成了对本板上各功能部件的驱动,本板上通信接口由板载的处理器控制,板微处理器通过非透明桥HB6与主板交互信息,并根据主板信息对I/O接口发起访问。逻辑图如图4所示。
HB6有三种工作模式:标准透明模式、标准非透明模式、通用模式。通用模式又分为通用非透明和通用透明模式两种,本板的设计使用通用模式下的通用非透明模式。HB6芯片选择由硬件配置完成,U_MODE拉高表示工作在通用模式;拉高表示工作在工作在通用非透明模式;XB_MEM拉高表示如果工作在非透明模式时,自动开16 MB空间供主板访问。为S端的复位输入,如果该模式下用不到,将其拉高,置在无效状态。
该模块中,HB6的通信机制用到直接消息中断、门铃中断和内存映射。HB6的P端和S端各开一个内存窗口,经过HB6内部的内存窗口映射机制映射到对方可访问的地址区域,并可通过映射译码寄存器的设置而变化,从而可使内存映射窗口随意移动。
桥两端的阴影部分基址可以通过改变Upstrearn或者Dowmstrearn相应寄存器的值来进行选择,从而使桥两端阴影部分的内存区域可以分别在各自的内存寻址空间中任意移动,使得P端可通过移动内存窗口访问S端任意一段内存区域,反之亦然。
当桥的一段需要把数据发送到桥的另一端时,先将需要发送的数据写入可供桥另一端读取的本地内存中,然后引发桥另一端的消息中断,以通知其接收数据,桥的另一端保持在空闲状态,接收到消息中断后,立即从相应内存区域中读取数据,操作完成后发门铃中断,以通知桥的另一端可以进行下一次操作,然后回到空闲状态。需要注意的是传送数据的格式必须有统一的标准,本模块的数据块组织方式是前4个字节为操作方式,接着4个字节为传送数据的长度,该值不包括本身的4个字节,后面紧接着存放相应长度的数据。
2 结语
设计了基于PowerPC处理器的智能串口模块,开发了VxWorks的BSP。使本板可运行硬实时的Vx-Works操作系统,且在实际测试中运行稳定。该模块可以作为从板在CPCI体系的计算机系统中方便的使用,很大程度上它的智能性简化了主板驱动的开发,既可以通过HB6桥同系统中的其他模块通信,又可以通过网络与其他模块构成多点通信,在工业控制、军用电子设备、通信设备等领域应用前景极为广泛。