【热点导读】:新闻娱乐化现象试析 传媒业发展回顾及展望 默多克传媒消费主义研究(下)
对广播电视网管系统的管制探索
更多精品
源自
计
划
串行传输协议概述
通常一个数据帧中包含成千上百个字符,而附加的控制信息仅几个字符。这样,附加信息只占1%,所以在进行高速传送时,一般采用同步传输协议。面向比特的同步传输协议面向比特的同步传输又称为二进制同步传输。它的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,这些协议的帧格式如图4所示。常用的串行接口标准在进行串行通信的线路连接时,互相连接的设备之间要共同遵守物理接口标准的规定,包括电缆的机械性能、电气性能、信号功能以及传送过程的定义,属于ISO/OSI七层参考模型中的物理层,规定了传送数据位的物理硬件规则,向链路层提供透明的位流传输实体。现在常用的串行接口主要为:RS-232C、RS-423A、RS-422A和RS-485接口。
串口设备通信的实现
中央塔广播电视传输网承担了“直播星”、中央70套广播、“长城亚洲”平台、中星-6B节目源、地面数字电视、CMMB等中央广播电视节目的传输任务,是地球站上行节目源的咽喉。全面实现广播电视传输网络设备的综合监控是确保中央广播电视节目安全、准确传输任务顺利完成的基础和保障。而目前机房的设备型号多、数量大。其中一大部分设备的通信接口是串口,解决与这些设备的通信问题是实现机房综合监控的关键环节。我们通过设备厂家授权的协议,对机房串口设备(RS232/422/485)进行了底层的控制。根据设备通信接口标准不同,所要监控的设备的接口类型主要如表1、表2所示。在程序实现上,我们采用C#语言编程来实现对串口设备的通信。对串口设备数据采集的过程主要是:打开设备端口,发送查询指令,等待设备返回数据,读取数据几个过程。下面将具体讨论实现网管与串口设备之间的数据通讯的实现过程。1.串口通信设计流程图5为设计的基本流程,主要包括对串口传输速率、传输距离的要求,选择合适的串口标准。在软件设计方面,根据实际需求,选择编写串口应用程序软件(本系统使用控件编程)。在串口调试环节,使用超级终端测试串口数据通信情况。最后需要考虑的是应该为用户提供哪些必须的库文件或控件文件,或者某些配套程序等。2.串口通信主要属性在每次与串口设备进行通信时,都要对以下属性进行设置。它们主要是:(1)串口(CommPort)属性通过设置该属性值,来进行串口编号的设置。读取该属性值可获取当前程序使用的串口编号。必须在打开串口端口之前设置Commport属性。(2)通信参数我们需要设置的通信参数包括:波特率、奇偶校验类型、数据位数、停止位数等4个参数。我们机房设备常用的标准波特率为9600(默认值)、19200和128000,单位是bit/s。通信线路的通信质量越高,波特率也越高。奇偶校验类型如表3所示,常用的为默认值(N)。数据位通常取数值为8(默认值)。停止位通常取值为1(默认值)。例如:机房串口设备比较常用的通信参数设置为:19200,N,8,1。表示波特率为19200,无校验、使用8位数据位及1位停止位。3.串口设备通信实例我们对机房内部RS232接口的设备进行数据采集,以光端机(RS232接口)为例。首先我们根据光端机厂家提供的协议,将串口设备连接,具体物理连接方式如图6所示:下面具体介绍实现串口设备通信的程序实现。我们采用C#语言实现打开串口设备端口,在软件的开发过程中,根据实际监控设备需求,将串口设备的数据归纳在SerialPort类中,因此在打开串口时,需要调用SerialPort类,具体代码如下:(1)打开串口privateSerialPort_Port;publicoverridevoidOpen(){string[]portSettings=PortSettings.Split(',');_Port.PortName=this.PortName;_Port.BaudRate=int.Parse(portSettings[0]);_Port.Parity=GetParity(portSettings[1]);_Port.DataBits=int.Parse(portSettings[2]);_Port.StopBits=GetStopBits(portSettings[3]);_Port.Open();}由以上代码中我们可以看到,在串口通信中打开端口时,主要需要以下几个信息:①串口端口(PortName,端口可以为COM1-COM255);②波特率(如:BaudRate=9600);③奇偶校验(如:Parity=n(None));④数据位(DataBits=8);⑤停止位(如:StopBits=1)。(2)发送数据我们主要是通过调用SerialPort类的方法,使用SerialPort.Write命令将指定数量的字节写入输出缓冲区中的指定偏移量处。(如:Byte[],Int32,Int32)具体代码如下:ectedoverridevoidWriteToPort(byte[]aOrder){_Port.Write(aOrder,0,aOrder.Length);}(3)接收数据串口读取数据实际上就是调用SerialPort类的方法,使用SerialPort.Read命令将读取的数据保存到数组data中,完成数据的接收。(如:Byte[],Int32,Int32具体代码如下:publicoverridebyte[]ReadDataInBytes(){byte[]data=newbyte[_Port.BytesToRead];intreadcount=_Port.Read(data,0,data.Length);returndata;}(4)串口设备数据采集时间的设置串口设备参数的读取过程中,我们需要对数据采集时间进行配置,以保证接收数据的完整性和准确性。下面将说明串口设备数据采集时间实现的具体命令语句。①设置数据采集频率通过C#语言命令语句设置数据采集频率上限,数据采集频率上限是指最快情况下应每隔多少时间发出一条查询命令,单位为毫秒(ms)。由于不同设备的响应时间不同,在发送查询指令时如果频率过快可能会导致数据不完整或无响应的情况,所以我们根据设备响应时间测试总结后,将默认值设置为1000ms。具体代码如下:publicintOrderPollInterval=1000;//毫秒②设置命令超时时间命令超时时间是指向设备发出命令后,经过一定时间没有响应,就认为该条查询无响应,这个时间就是超时时间。超时时间也是可以配置的,不能太短,也不能太长。我们同样根据在实际中的测试结果,将这个值设置为1000ms,即publicintOrderTimeOut=1000;//毫秒③接收字节间隔设置接收字节间隔是指在该时间内,端口接收的字节数不再变化,认为收到完整的数据帧。该常量是为了确保接收数据时能够收到完整数据帧的时间。具体代码如下:publicintFrameByteInterval=50;//毫秒通过以上3个部分的程序实现对串口设备数据读取的设置,以保证对设备数据读取的实时性和有效性,保证数据采集的准确和完整。4.串口设备通信测试我们主要针对设备响应速度、数据采集等功能的正确与否进行测试,对出现的问题进行集中修改。具体测试结果如表4、表5、表6所示:在测试过程中,我们对实际测试数据进行了详细的记录和总结,对于测试中错误的响应值以及其它出现的问题进行了及时的修正,保证了通信的准确无误。
小结
通过对串口设备通信的研究,实现了对串口设备的数据采集,将无线局SDH传输网中的串口设备的各种参数及运行状态进行了统一的监控与管理。同时,积累了实际经验,使我更加深入的掌握了现代网络技术、通信技术和计算机技术在广播电视系统中的实际应用。当然随着数字电视技术、通讯技术和计算机技术的快速发展,各种新技术、新设备在广播电视网络中广泛应用,现代化的广播电视网络已经成为一个技术复杂、规模庞大的系统。如何针对广播电视传输的特点,借鉴电信网络管理和计算机网络管理的经验和先进技术,遵循基于TMN、SNMP、OSI等国际规范,建立广电综合网管的基本框架,建设现代化、高起点的广播电视综合网络管理系统是广电行业面临的迫切需要解决的任务。如何将高新技术与广播电视技术充分结合,还有很多问题是值得我们研究和探讨。随着广播电视技术的不断发展,相信广播电视系统将不断的融人高新技术而日臻完善。