朱丹總
(漳州電視臺 播出部,福建 漳州 363000)
目前大部分電視臺都采用硬盤自動播控系統來進行電視節目的播出,角標和字幕切出時間的準確性取決于字幕機和播控站PC機等設備時間的精度,因此大部分電視臺都會采用授時系統,通過對各相關設備進行時間校正,來確保各信號的準時播出。
漳州電視臺自動授時系統采用專用的GPS模塊來接收時間信息,采用單片機作為主控芯片來進行時間源的獲取,并對各終端設備進行授時。
如圖1所示,整個系統主要由GPS接收模塊[1-2]、CPU控制單元、備用時鐘模塊、時鐘顯示單元、接口轉換單元和PC機接收處理等部分組成。

本授時系統采用瑞士u-blox公司提供的LEA-4S接收模塊,該模塊具有很高的靈敏度,可以接收并處理微弱的信號,適用于各種環境。經設置,該模塊每秒可通過串口輸出一串$GPRMC信號給CPU,該信號含有從GPS衛星定位系統上接收下來的日期和時間參數。
主控制器采用ATMEL公司的ATmega16單片機,該單片機含有一個串行收發器USART。進入正常工作后,單片機只從GPS模塊接收數據,并向各終端設備單向發送數據。因此可采用單片機的接收口RxD來接收GPS模塊送過來的$GPRMC信號,發送口TxD則用于輸出授時信號到播控站、字幕機等設備,對其校時。
為了便于產生9600 Hz波特率的串口通信頻率,AT?mega16單片機采用11.0592 MHz的晶振(fosc),根據AT?mega16單片機波特率BAUD和寄存器UBRR值的計算公式UBRR=fosc÷BAUD÷16-1,可推導出,只要將UBRR設置為71,便可將串口通信的波特率設置為9600 Hz。
在惡劣天氣或受到干擾等情況下,GPS接收模塊有時接收不到有效的GPS信號,無法向單片機提供正確的時間信息,為此筆者設計了一個備用時鐘模塊,單片機未能從GPS模塊接收到有效的時間信息時,會自動從備用時鐘模塊獲取時間信息,確保了時間源的不間斷獲取。
時鐘模塊采用專用的時鐘芯片HT1380,該芯片是帶年月日和時分秒的串行時鐘保持芯片,外接32.768 kHz走時晶振,日計時誤差約為0.5 s,在GPS模塊能提供有效的時間信息時,單片機每間隔1 h對HT1380的計時信息修正1次,進一步確保了備用時鐘模塊的計時精度。
該模塊由4個LED數碼管和驅動線路組成,用來顯示時間。為了簡化電路和減少占用單片機I/O端口,采用動態掃描方式來驅動數碼管的顯示,即對每位數碼交替驅動顯示,每隔2 ms驅動點亮1位數碼管。
ATmega單片機和終端PC機的通信接口都為RS-232,傳輸距離有限。為了延長傳輸距離,提高數據傳輸的可靠性,采用MAX485芯片先將單片機串口輸出的RS-232協議信號轉換為RS-485協議信號,當信號傳輸到播控站、字幕機等終端時,再經RS-485/232轉換模塊還原為RS-232協議信號,然后送入播控站和字幕機等設備的RS-232串口,采用RS-485協議信號來進行信號傳輸。
由于本系統采用單向授時方式,即授時信號只是由主控板送至各設備終端,為了簡化電路和提高信號傳輸的可靠性,將芯片MAX485設置成單向傳輸方式,如圖2和圖3所示,將發送端MAX485芯片的RE和DE控制腳都設置為高電平,而接收端MAX485芯片的RE和DE控制腳都設置為低電平,這樣就可確保信號是由主控板向各受控設備單向傳送。

為了使用方便,如圖3所示,將字幕機和播控站所使用的RS-485轉RS-232模塊設計成無源方式,整個電路的供電直接從接收終端的RS-232接口的DTR(第4腳)和RTS(第7腳)獲取,由78L05穩壓后,產生5 V直流電源,對接收模塊電路供電。
PC機內的接收處理軟件將接收到的授時信號經校驗和解碼處理,然后對PC機和字幕機等設備的系統日期和時間進行校準。
本系統采用匯編語言來設計ATmega16單片機程序,如圖4所示,開機后主程序先進行初始化設置,將串口通信參數設置為波特率9600 Hz,數據位8位,校驗位無,停止位1位,并開辟了接收緩存空間receiveBuffer和發送緩存空間sendBuffer,用于暫存接收和待發送數據。進入主循環后,不斷地進行按鍵檢測、發送授時信號和LED時間顯示處理。
如圖5所示,單片機以中斷的方式接收并處理GPS模塊發送過來的$GPRMC信號,GPS模塊通過串口每秒鐘發送如下的1幀信號到單片機:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
代碼中:<1>代表UTC時間,hhmmss(時分秒)格式;<9>代表世界協調時間(Universal Time Coordinated,UTC)日期,dd?mmyy(日月年)格式;hh是用作奇偶校驗的數據,代表了$和*之間所有字符按位異或值。每當收到完整的一串數據后,先判斷校驗碼是否正確,以防止接收數據有誤。接收到正確的數據后,先從<1>和<9>提取出 UTC時間和日期,UTC時間與格林尼治平均時(Greenwich Mean Time,GMT)相同。因北京和英國倫敦相隔8個時區,所以需要將解出來的UTC時間和日期進行時差轉換才能得到北京時間,然后送出顯示和授時。漳州電視臺硬盤播出系統上采用的是安徽現代電視技術有限公司的臺標發生器,為了兼容其接收授時信號的格式,每組由單片機發送出來的授時信號都包含如下信息:5A,<1>,<2>*hh。其中:5A代表握手信號;<1>代表北京時間,hhmmss格式;<2>代表日期,ddmmyy格式;hh為校驗碼。在臺標發生器RS-232接口上的轉換器采用專用的有源RS-485/232接口轉換器。

圖4 ATmega16單片機程序流程圖

圖5 單片機中斷流程圖
本系統采用Visual Basic語言[3]來編寫PC機端的管理軟件。如圖6所示,在軟件的初始化設置時,將PC機串口通信的參數設置成和單片機串口一樣的參數,即波特率9600 Hz數據位8位,校驗位無,停止位1位。串口通信設置代碼為:
MSComm1.CommPort=1
MSComm1.Settings="9600,N,8,1"

圖6 PC機端程序流程圖
MSComm1.InputLen=0
MSComm1.InBufferSize=256
MSComm1.OutBufferSize=256
MSComm1.InBufferCount=0
MSComm1.OutBufferCount=0
MSComm1.PortOpen=True
MSComm1.SThreshold=0 MSComm1.RThreshold=1
為了防止誤改系統時間,接收端軟件收到一組時間信號后,先與PC機原來的系統時間進行比較。如果不一致,接著再接收一組時間信號,并對先后收到的兩組時間數據進行分析,確認正確后才修改系統時間。
GPS模塊在使用前需先采用廠家提供的專用設置軟件進行輸出參數的設置,LEA-4S的設置軟件為u-center 3.0,界面如圖7所示。
本授時系統采用了單片機ATmega16作為主控芯片,可及時準確地獲取GPS信號,經過處理后發送授時信號到各終端設備。經過實際運行,本系統能同時對3臺主播控站、3臺備播控站、3個臺標機和3臺字幕機進行授時,運行穩定,授時準確,可確保節目的安全準點播出。

圖7 GPS模塊設置軟件界面(屏幕截圖)
[1]洪大永.GPS全球定位系統技術及其應用[M].福建,廈門:廈門大學出版社,1998.
[2]王爾申,胡青,張淑芳.GPS和Galileo接收機的芯片技術與系統設計[J].電視技術,2007,31(6):17-19.
[3]姚巍.Visual Basic數據庫開發及工程實例[M].北京:人民郵電出版社,2003.