ieee1394作为一种高性能的串行总线技术,具有数据传输速率高、支持异步和等时传输、点对点连接、可热插拔、线缆提供电源等优点[1]。多台设备可以通过树状或菊*链状拓扑连接到网络中,并共享总线传输带宽。虽然ieee1394a协议相对比较复杂,但功耗较低,数据传输更加稳定,组网方便(无需路由器)[2]。ieee1394已经在高速通信中表现出了优异的数据传输性能,并可确保数据传输的安全性和可靠性。
1 系统方案
ieee1394高速网络通信系统采用树状拓扑结构来构建网络,通过软件将主控计算机上的1394节点设为根节点,其他设备上的1394节点设为叶节点,目的是使主控计算机能对整个网络进行控制和监管。组建好的网络拓扑结构如图1所示。
图1 高速网络通信系统拓扑结构图
在图1中,根节点与叶节点之间、叶节点与叶节点之间都采用ieee1394a标准线缆连接。本网络中根节点下有两棵树,它们都在同一条总线bus0上。不在一棵树上的1394节点也可位于同一个设备上,如node1、node2和node5都在同一个设备上。
2 硬件设计
主控计算机上的1394节点采用powerpc作为通信和数据处理的核心。采用powerpc的原因是它的体系结构是开放的,而且powerpc在大数据量、高速信号处理中具有强大的优势和很好的应用潜力。由于大多数pc机上都具有pci接口,pci总线应用广泛,pci接口驱动的通用性较强,所以主控计算机与powerpc可通过主控计算机上的pci接口进行通信,这就简化了在主控计算机上开发pci接口驱动的工作。而ieee 1394接口采用双接口芯片设计,并配备了sdram作为大容量数据缓冲,用flash来存放软件。1394节点都是通过1394总线连接的。主控计算机上的1394节点(已设为根节点)通过1394总线与网络中其他某个设备上的1394节点(已设为叶节点)相连的整体框图如图2所示。左侧为根节点架构,右侧为叶节点架构。叶节点的架构与根节点的架构是类似的,但由于只有根节点与主控计算机连接,而叶节点不与主控计算机相连,所以叶节点并不需要pci总线。
图2 主控计算机上的1394节点架构
ieee1394接口采用的是链路层芯片tsb12lv32和物理层芯片tsb41ab3。tsb41ab3是支持3个线缆接口的物理层芯片。tsb12lv32是一款支持ieee1394a总线标准的高性能通用链路层芯片,最高传输速率为400 mb/s[5],本网络可采100 mb/s、200 mb/s、400 mb/s来进行数据的传输。tsb12lv32为后端提供了主机接口,系统中powerpc采用主机接口完成寄存器的配置和异步流包的传输。tsb12lv32还为powerpc提供了中断输出int和可编程状态stat[0:2],用于总线复位、传输错误和内部fifo状态指示。
对于数据的收发,采用dma来进行数据的搬运而完成。通过中断机制来把收到消息事件报告给核心处理器powerpc,由处理器对消息进行处理。
图3 软件层次图
3 软件设计
根据软件要实现的功能,可把软件划分为3个层次,如图3所示。
3.1 1394内核软件
对1394内核的物理层和链路层寄存器进行配置,对ohci、总线管理器配置等[3],并对这些内核函数进行了封装。这种隔离的好处是可使用户不必关心底层硬件,只需调用内核函数就可开发出用户软件。通过建立结构体来将这些函数进行分类、链接,驱动软件在调用内核函数时可通过结构体来直接找到相应的内核函数,从而进行调用,这样就把1394内核软件和上层驱动链接了起来。
3.2 驱动软件
由于1394协议支持异步传输和等时传输,且为了保证传输的可靠性,故采用异步流包进行数据的传输。对于发送,驱动软件先根据异步流包的格式,对通信软件中的消息进行组帧打包,然后调用内核函数进行发送。对于接收,是利用中断机制来接收消息的。
3.3 通信软件
上电后,1394总线上首先会出现持续125 μs左右的总线复位(bus reset)状态,之后进行树标识和自标识工作。树标识进程定义了总线的拓扑结构。树标识之前,每一1394节点都知道自己和其他的节点相连,此过程过后,整个网络的拓扑就形成了,设置计算机为根节点(root),其他的节点为分支节点。树标识后是自标识进程,自标识通过根节点发送自标识授权信号和节点返回自标识数据包来完成,其实现的功能主要有:为每个节点分配物理标识,相邻节点交换传输速度信息,将树标识进程定义的拓扑在整个网络中广播。
根据内核函数,对整个通信网络进行初始化,包括初始化pci总线init_pci()、初始化1394设备init_1394dev()、树标识和自标识、主控机上的1394节点设为根节点(叶节点不进行此步)、初始化中断等。
初始化完毕后,首先挂接中断服务程序。然后根节点采用发送stof包来进行网络同步,即以发送stof包作为一帧的开始,叶节点收到stof包后立即与整个网络同步。对于发送过程,通信软件把要发送的消息传递给驱动软件,进行发送。对于接收过程,若接收到新消息,就会报中断给处理器,并根据中断号进入相应的中断服务程序,中断服务程序就会置标志位,通知通信软件中的接收函数把接收到的消息进行处理。
结语
结合高速网络通信系统的通信要求,自行设计的网络通信系统完成了网络中主控计算机与网络之间、根节点与叶节点之间、叶节点与叶节点之间的通信,实验表明,系统通信良好。由于此网络遵循ieee1394标准,所以可应用于家庭数字化网络、车载信息系统、工业自动化系统等[4]。随着ieee1394技术的不断发展,其应用也从商用向更多领域扩展。
软件架构设计的三个维度
使用光敏电阻作为传感元件的基本暗光传感器
视觉工程师快速了解工业相机的50问详解
英特尔、科沃斯、思岚科技共同推动移动机器人智能变革
苹果手机为什么可以用很久?
IEEE1394总线的网络通信系统设计方案
浅谈影响UV胶水固化效果的因素
瑞士研究人员研发出了一种可以躲闪障碍物的无人机
上海一家世界级半导体封测厂的突然关闭折射出什么?
舵机是什么 各类电机的特点
安规电容在电力系统中起到什么作用?
常见LED电子显示屏驱动方式简介
中国半导体成为全球最大市场,但芯片自给率仅14%
华为Mate9、华为荣耀V9对比评测:18个月不卡顿遇上高颜值高性价比,谁更能打动你?
物联网新应用,创享智慧生活
视觉检测技术是什么,它有哪些突出的亮点
AI摄像头背后隐藏着什么危害
元宇宙概念再次爆发
ADI 的高功率 µModule 稳压器可降低数据中心冷却要求
有关微控制器的些许小知识