基于ARM+FPGA的1394总线在TFT-LCD检测系统中的应用
3 通信测试
对1394通信模块的通信实验分为两部分:对1394协议所规定的通信功能的测试;对采集到的数据正确性进行验证。实验步骤如下:
(1)将1394通信模块和PC连接起来,模块加电后,首先进行总线配置、树标识和自标识。在整个网络形成后,已经确定根节点,各个节点的地址也就确定了。在1394总线执行上述动作时,同时通过扩展的串口输出自标识数据包的内容,包括当前网络中的节点数、当前节点为第几个节点、是否为根节点、是否具有等时资源管理的功能。至此,1394通信模块已和PC建立连接。
(2)通过PC读取1394通信模块的配置ROM,看其是否能进行正确响应。
(3)进行异步读和异步写的测试,分为对字节的异步读写和对数据块的异步读写两种。
(4)进行等时数据传输的测试。看PC是否能接收到1394通信模块发出的等时数据包。
(5)连接相机,通过等时传输将相机的图像数据存入到1394通信模块的SRAM中,并由VGA接口输出到显示器上显示。
除了第(5)步,以上每一步的执行都会在串口调试助手软件上有结果输出。例如:1394通信模块在上电后收到自标识包并进行复位,并在调试界面上会输出"SID RCVD 2 Y 0 BUS RST.."。其中"SID RCVD"表示节点收到自标识数据包,"2 Y 0"表示当前总线中存在两个1394节点,当前节点为根节点,具有等时资源管理功能的节点是节点0。"BUS RST.."表示节点开始进行总线复位。当前节点发起读取0x0400地址数据的异步读请求,则在界面上会显示"ACK00010,0x04049c44"。"ACD00010"表示另一个节点接收到了异步读请求的命令,"0x04049c44"则为返回的0x0400地址存储的数据。两个1394节点要进行等时数据传输,假如数据发送方为节点0,数据接收方为节点1。按照以下步骤进行节点间等时数据传输的测试:(1)先设置节点0的DM口模式为发送模式,节点1的DM口模式为接收模式。(2)节点0先读取总线上的有效带宽,上层界面接收到"0x00000f33",它是用十六进制表示的当前总线的有效带宽。节点0再向等时资源管理节点申请一定的带宽,上层界面接受到"ACK 00010",表示带宽申请成功。(3)读取总线上的有效通道并且申请通道。1394总线的有效通道数存在两个寄存器上,申请时按照由低到高的顺序。在申请通道前需先确认当前网络中使用的通道数,通信结束后再释放该通道。发出读取有效通道的指令后,上层界面接收到"0xffffffff"和"0xffffffff",表示目前总线上所有通道均处于空闲状态。可以申请通道1,申请后低位通道寄存器的值变为"0xfffffffe"。经过前面三步已经建立了节点0和节点1进行等时通信所需要的带宽和通道。(4)发送等时传输的指令,看节点1是否接收到了指定量的等时数据包。通过中断寄存器的bit9(Data Mover packet receive)进行判断。
本文分析了基于FPGA+ARM的1394总线在TFT-LCD检测系统中的应用,对于1394总线技术的推广具有较强的借鉴意义。测试实验表明,1394总线在进行等时通信时分配固定的带宽,保证了图像数据又快又准的传输,同时整个检测系统的各个模块通过1394总线连接起来,可以完全脱离PC单独运行,采用异步传输进行控制指令的传输,既方便又稳定。
IEEE1394总线 ARM+FPGA TFT-LCD检测系统 相关文章:
- 基于ARM+FPGA的食用花生油质量快速检测仪的设计(10-09)