TA的每日心情 开心 昨天 09:43
签到天数: 4197 天
[LV.Master]伴坛终老
消息来自- 北京
概述
在电视台的节目制作中,经常需用利用通信卫星传输视音频电视信号,卫星传输具有覆盖面广、连接简易、工作稳定等特点,在电视制作播出中得到广泛的应用。
我台目前接收的卫星射频信号有30多路,日常及临时使用的视音频卫星信号源有近百路。每次检查这些视音频信号源时,技术人员需要在设备机房的卫星接收机逐项输入每个卫星信号源的解码参数,这个工作比较繁琐冗长。
为了减轻检查卫星信号源的工作量,使得技术人员不用进入设备机房,就可以在值班室通过电脑远程控制卫星接收机的参数设置,本人在工作之余收集资料、设计技术方案并经过反复的实验和调试,最终通过对卫星接收机和计算机的RS-232通信接口进行开发,利用Visual Basic语言进行编程,实现了对卫星接收机的远程控制。
一、卫星信号传输的技术环节
在卫星信号的发射端,视音频信号经过编码、调制、上变频、高功放等环节的处理后输出射频信号,经卫星上行地面站发射到指定的同步通信卫星,再由卫星的转发器变频为下行频率发射回地面,由接收端的地面天线接收,经过LNB下变频输出L-band信号,由卫星接收机进行解码输出视音频信号。整个视音频信号卫星传输的流程如图1所示。
图1——视音频信号卫星传输流程图
二、卫星信号接收的参数设置
正确接收一个卫星信号,解码输出相应的视音频信号需要在卫星接收机设置参数,包括卫星下行频率、LNB本振频率、数据传输符号率、前向纠错码、频谱转换设定、频道节目编号等。
卫星下行频率由传送单位向卫星公司提出传输租用申请后,由卫星公司指定,为卫星向地面传输的载波频率,一般分C和Ku两个不同的频段范围。
LNB本振频率为地面接收天线系统所固有的参数,用于和卫星下行频率差频输出L波段中频信号。C波段一般为5150MHz,Ku波段由于频谱较宽,共有10.75GHz、11.25GHz、11.3GHz等多个频点。
数据传输符号率、前向纠错码、频谱转换设定、频道节目编号由信号发射系统设定,卫星接收机的设置必须和发射系统的编码调制设备一致才能正确解码。
三、卫星机控制方案的实施准备
1.使用RS232作为通信数据接口
RS232是一种常见的数据接口,所有台式及笔记本计算机都标配有该种接口,我台使用的TT1220型卫星接收机亦具有RS232接口作外来控制。RS232接口的通信抗干扰能力不算强,一般通信距离小于20米,基本满足我台值班室到设备机房之间使用,假如通信距离较长,可通过RS232与RS485的转换模块加以延长。
2.使用Visual Basic作为程序编写语言
Visual Basic学习简单,使用方便,功能强大,其窗口化、对象化的程序设计方式使得开发得难度大大降低,十分适合非专业的软件开发人员使用。另外,Visual Basic提供有功能完善的串行口通讯控件,使通讯控制变得简单可靠、易于实现。
3.使用TT1220型卫星接收机作受控设备
TT1220型卫星接收机为我台使用较多的一款机型,由挪威Tandberg公司(现已被Ericsson公司收购)生产,该接收机功能较强、性能稳定,具有较全面的RS232接口的受控功能,可以满足本方案的使用。
4.使用中频矩阵作卫星中频信号的调度
我台接收的卫星中频信号有30多路,各个卫星视音频信号分布在不同的中频信号上。我台卫星信号系统配置有一台中频矩阵,可以方便的调度卫星中频信号到指定的接收设备。为了方便监看更多的卫星信号,我们在值班安装了一块矩阵的单母线面板,专用于受控卫星接收机输入信号的调度。
5.控制设备的连接(如图2所示)
图2——控制设备的连接
四、卫星机控制方案的实施步骤
1.资料搜集:关键是查找TT1220卫星接收机的通信协议,判断是否满足控制要求。
2.学习编程:本人只在多年前的大学时期学过简单的计算机语言,从未接触过高级语言编程,在本设计中为了快速上手,就选择Visual Basic语言作编程,现学现用。
3.协议解读:学习TT1220卫星接收机的通信协议,了解接口通信的设置及指令的结构组成。
4.接口测试:利用Visual Basic语言编程,对计算机的RS232接口进行控制,测试数据的收发。
5.通信测试:编写简单的指令收发模块,测试计算机和卫星机接口之间指令的发送和接受。
6.控制实现:编写各种指令的收发模块,逐个完成每个卫星解码参数的遥控设置,从而成功实现卫星接收机的编程控制。
五、TT1220卫星接收机的应用介绍
1.设备功能
Tandberg TT1220为广播级卫星接收机,输入卫星中频信号范围950-2150MHz,符号率范围1-45Msps,输出有模拟、数字视音频信号,可通过设备面板或RS232接口进行控制使用。
2.RS232接口引脚说明
如上表所示,TT1220的RS232接口(位置见图3)中只用到3个引脚,其中TXD为数据发送,RXD为数据接收,GND为接地引脚。
图3——TT1220接收机RS232接口位置
3.卫星机RS232接口的通信设置如下:
传输比特率:38400bps,数据位:8bits,停止位:1bits,校验位:无,握手协议:无,码流控制:无。
4.通信协议的指令类型
TT1220的通信指令分两种类型:Get(查询)和Set(设置)。
SET指令用于对卫星机进行参数设置,返回为确认或不确认的数据(Acknowledge / Not Acknowledge),确认数据中包含实际的设定参数,不确认数据中包含出错的代号。
GET指令用于查询卫星机的参数设置状况,以及该设备的工作状态,返回为确认或不确认的数据(Acknowledge / Not Acknowledge),数据中包含的内容同SET指令。
5.通信指令的数据格式
如上图格式所示,说明如下:
DLE (Data Link Escape):标志命令和回应指令的开始和结束。单字节字符,ASCII值为 0x10。在数据中间重复1次(stuffed)用于区分标注指令数据中的0x10值。
STX (Start of TeXt):指令数据段的首发字符。单字节字符,ASCII值为0x02。
ETX (End of TeXt):指令数据段的结束字符。单字节字符,ASCII值为0x03。
Dest. (Destination):接收设备中响应该指令的功能模块的代号。双字节字符,数值由指令实际内容确定。
Src. (Source):发送设备中该指令相关功能模块的代号。双字节字符,数值由指令实际内容确定。
CI (Command Identifier):指令类型的代号。单字节字符,数值由指令实际内容确定。
PI (Parameter Identifier):参数类型的代号。单字节字符,数值由指令实际内容确定。
PLI (Parameter Length Indicator):参数数据的字符长度。双字节字符,数值由指令实际内容确定。
Ch.sum (Check sum):指令中所有数据字节的校验值。单字节字符,数值由指令实际内容确定。
6.常用指令描述和应用
a.高频头本振频率查询和设置
如上表所述,该指令的参数类型(PI)值为0x0202,数据长度(PLI)为4字节,数据的步进(单位)为100kHz,该数据与卫星下行频率之差需位于950-2150MHz范围,可用于查询(CI值为0x85),或用于写入(CI值为0x35)。
b.卫星下行频率查询和设置
如上表所述,该指令的参数类型(PI)值为0x0206,PLI、CI等值的定义同上。
c.传输码率查询和设置
如上表所述,该指令的参数类型(PI)值为0x0207,数据长度(PLI)为4字节,数据的步进(单位)为1k波特,数据范围为1-44.5M波特,可用于查询和设置。
d.前向纠错码查询和设置
如上表所述,该指令的参数类型(PI)值为0x0208,数据长度(PLI)为4字节,数据取值范围为1、2、3、4,代表1/2、2/3、3/4、5/6、7/8的使用设置,该指令可用于查询和设置。
e.全部指令共有数十条,就不再一一赘述。
六、程序的编写和控制的实现
1.RS232接口通信测试
a.接口的引脚连接
为测试计算机com口(RS232)的通信功能,现把com口的引脚2(RXD)和引脚3(TXD)短接,如右图所示。编程测试时发出的数据由com口本身接收。
b. 测试程序界面及说明 图4——计算机RS232测试界面
如图4,左上角“com口选择”可选择打开计算机的内置串口,若被占用则弹出报错窗口。通信设置“38400,o,8,1”表示传输比特率为38400bps、偶校验、数据位8bits、停止位1bits。测试字符数据由发送窗口手动输入,通过com口环路传输而被接收,在返回窗口即时显示出来。
测试结果符号设计要求,确认了计算机RS232接口通信的控制流程和编程方式的可用性。
2.TT1220通信控制的实现
a.接口的引脚连接
如上表,计算机和TT1220之间的通信互为收发,所以两设备的RXD、TXD引脚交叉连接,信号地SG直接连接,其余引脚不使用则无需连接。
b.程序控制界面及说明
图5——卫星机控制程序界面
如图5所示,控制程序界面上的通用指令测试是用于检查指令编写格式的正确性以及通信传输的准确性,手工编写一个测试指令,在文字框上输入并按发送,接收机正确接收后,将应答发送一组数据,显示在下面的数据返回窗口中,根据收和发的内容,可以判断指令的数据编写是否正确,接收机的数据返回是否符合正常。
LNB频率、下行频率、传输码率、FEC纠错码的发送是独立的指令发送程序模块,根据实际的卫星信号接收参数填写或选择后,发送到卫星接收机更改设置。
“节目源选择”则用于多节目单载波打包传送(MCPC)的情况,卫星数据包里含有多个视音频信号,每个视音频信号有独立的节目编号。在应用中把上面的几个参数设置好后,卫星机能正确接收传输数据,然后按“查询”,卫星机将返送回有关节目表的内容,显示在下拉窗口中,选择其中一个后按“发送”,卫星机将输出所选定节目的视音频信号。
c.控制编程的流程示意(如图6所示)
图6——TT1220控制程序流程
d.通信数据的波形检测
为观测分析计算机和卫星机之间通信信号的电平和指令波形的时序,利用示波器存储功能对指令数据的时序波形进行了记录,下面是其中的一组波形截图:
高频头本振频率发送指令波形时序图(图7):
频率:5150MHz(0xC92C 100KHz)
指令数据:10020201FFFF35020200040000C92Cffff0000D51003,其中0201为设备功能模块地址,35为设置指令标志,0202为本振频率参数代码,C92C为频率数值。
图7——发送指令波形时序图
指令数据返回波形时序图(图8):
返回数据:1002FFFF02013510100000020000FFFF0000341003,其中FFFF为控制设备地址,101000为指令确认标志。
图8——接收指令波形时序图
e.控制程序的编写
Visual Basic语言中提供了丰富的应用模块,给控制软件的实际编写工作带来很大的方便。在程序中使用到了MSComm、CheckBox、ComboBox、OptionButton、PictureBox、DataList等控件,应用起来直观简洁。现列出部分指令代码及算法说明如下:
MSComm控件设置(用于RS232接口的通信)。
With MSComm1
.RThreshold = 1 '接收到1个字节数据就立即触发软件处理
.SThreshold = 0 '发送数据后马上检测是否返回数据
.InputLen = 0 '一次性从接收缓冲区中读取所有数据
.InputMode =1 '设置接受数据的类型是二进制类型数据
.Settings = "38400,n,8,1" '设置com口通信数据格式
.CommPort = 1 '使用第一个串口 End With
高频头本振频率的选择设置。
With ComboLnbF
.AddItem "5150" '增加菜单中5150MHz的选择项
.AddItem "11300" '增加菜单中11300MHz的选择项
.AddItem "11250" '增加菜单中11250MHz的选择项
.AddItem "10750" '增加菜单中10750MHz的选择项
.ListIndex = 0 '设定菜单默认选项为第一个
End With
高频头本振频率、卫星下行频率设置指令生成的算法。
步骤1、将高频头本振频率或卫星下行频率文本框中的输入数值转为数字格式。
步骤2、将所得数字*10,即把频率单位由MHz转换成协议规定的100KHz。
步骤3、把所得数字转为16进制。
步骤4、逐位检查所得数字中是否存在“10”,若有,则在后面补充“10”以标记为有效数字。
步骤5、在所得数字之前和之后按格式加上指令标记、地址等信息。
步骤6、计算上述步骤处理后的数字序列的校验值,生成正确的指令数据。
步骤7、把指令数据从指定的通信接口发送出去。
符号率、FEC设置指令的生成和发送和上面类似,按各自指令的要求生成数字序列并发送即可。
多路单载波信号(MCPC)中指定节目接收的算法。
步骤1、按次序将高频头本振频率、卫星下行频率、符号率、FEC等输入参数逐个生成指令数据并发送至卫星接收机。
步骤2、发送查询节目号的指令。
步骤3、接收卫星机的返回信息。
步骤4、从返回信息中提取各个复用节目的编号和名称,并在程序窗口的指定列表框中显示。
步骤5、在列表框中选择所需的节目项,发送节目号设置指令,取得所需节目的视音频信号。
七、结语与展望
卫星接收机编程控制方案的想法是在工作中突然想到的,一时兴起就付诸行动了。实施过程中发现问题一个接一个,难关过了一道又一道,自己硬着头皮坚持了下来,好在最后成功了,感觉一切都是值得的。
经过本次设计,自己学习了很多知识,独立完成了从设计计划、方案制定、实施到完成的整个工作流程,积累了一定的实际工作经验,相信在以后的工作中会有帮助。
本次设计到此完成了TT1220卫星接收机的编程控制,后面还有一些完善的设计方案可以继续实施进行。比如引入数据库的管理,近百个视音频信号的接收参数可以方便管理、可以直接在控制软件中调用,省却逐个输入的麻烦;又比如加入对卫星中频矩阵、视音频矩阵、录像设备的编程控制,成为一个全功能智能化的卫星信号收录控制软件;还有是要加强对Visual Basic编程语言的学习,把程序编写的更美观实用,上面编写的软件界面比较简陋,不大方便推介共享。推介共享。
踩过的脚印