本發(fā)明涉及嵌入式網(wǎng)絡(luò)設(shè)備領(lǐng)域,尤其是涉及一種應(yīng)用于列車的數(shù)字廣播控制系統(tǒng)。
背景技術(shù):
在現(xiàn)代列車廣播系統(tǒng)中,數(shù)字廣播控制器作為tms信號(hào)的輔助控制設(shè)備,是乘客廣播系統(tǒng)中的重要組成部分。
數(shù)字廣播控制器可以完成地鐵司機(jī)室與地面控制中心的交互、對(duì)列車車廂進(jìn)行廣播和乘客對(duì)講、司機(jī)室對(duì)講、實(shí)時(shí)顯示tms信息、列車故障及故障解除指導(dǎo)顯示等功能。在操作過(guò)程中,司機(jī)通過(guò)lcd屏,可實(shí)時(shí)對(duì)車廂廣播報(bào)站、緊急廣播和口播操作。當(dāng)有乘客對(duì)講請(qǐng)求,還可以在lcd屏幕上根據(jù)乘客對(duì)講請(qǐng)求先后順序,由司機(jī)決定接通乘客的請(qǐng)求?,F(xiàn)有的數(shù)字廣播控制器還存在抗干擾能力不強(qiáng)、無(wú)法進(jìn)行網(wǎng)絡(luò)升級(jí)等缺陷,需要進(jìn)行改進(jìn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種穩(wěn)定性好、功能多樣的應(yīng)用于列車的數(shù)字廣播控制系統(tǒng)。
本發(fā)明的目的可以通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn):
一種應(yīng)用于列車的數(shù)字廣播控制系統(tǒng),包括:
即時(shí)操作模塊,實(shí)現(xiàn)嵌入式實(shí)時(shí)操作;
網(wǎng)絡(luò)包收發(fā)處理模塊,與所述即時(shí)操作模塊連接,實(shí)現(xiàn)網(wǎng)絡(luò)包的接收和發(fā)送;
業(yè)務(wù)功能模塊,分別連接所述即時(shí)操作模塊和網(wǎng)絡(luò)包收發(fā)處理模塊,根據(jù)接收到的命令執(zhí)行相應(yīng)操作;
lcd顯示模塊,分別連接所述即時(shí)操作模塊和業(yè)務(wù)功能模塊,響應(yīng)即時(shí)操作模塊的驅(qū)動(dòng),并向業(yè)務(wù)功能模塊發(fā)送操作命令包;
數(shù)據(jù)庫(kù)接口模塊,分別連接所述即時(shí)操作模塊和業(yè)務(wù)功能模塊,實(shí)現(xiàn)數(shù)據(jù)庫(kù)文件的讀取和寫(xiě)入;
異常監(jiān)測(cè)模塊,與業(yè)務(wù)功能模塊連接,實(shí)時(shí)進(jìn)行異常監(jiān)測(cè),在監(jiān)測(cè)到有異常發(fā)生時(shí),啟動(dòng)異常忽略技術(shù),記錄該異常。
所述即時(shí)操作模塊包括與所述網(wǎng)絡(luò)包收發(fā)處理模塊連接的網(wǎng)卡驅(qū)動(dòng)單元、與所述lcd顯示模塊連接的幀緩沖驅(qū)動(dòng)單元、與所述數(shù)據(jù)庫(kù)接口模塊連接的文件存儲(chǔ)單元和與所述業(yè)務(wù)功能模塊連接的音頻驅(qū)動(dòng)單元。
所述網(wǎng)絡(luò)包以隊(duì)列形式傳遞。
所述業(yè)務(wù)功能模塊包括:
命令解析單元,用于解析由lcd顯示模塊傳送的操作命令包和由網(wǎng)絡(luò)包收發(fā)處理模塊傳送的網(wǎng)絡(luò)包;
操作執(zhí)行單元,用于根據(jù)解析后獲得的命令執(zhí)行相應(yīng)操作,包括工作狀態(tài)切換、自動(dòng)報(bào)站、手動(dòng)報(bào)站、緊急廣播、口播、司機(jī)對(duì)講和司機(jī)乘客對(duì)講。
所述lcd顯示模塊用于實(shí)現(xiàn)與司機(jī)的互動(dòng),包括:
手動(dòng)廣播界面,用于接收司機(jī)的手動(dòng)廣播指令;
緊急廣播界面,用于接收司機(jī)的緊急廣播指令和顯示緊急廣播詞;
口播界面,用于接收司機(jī)的口播指令,并顯示相應(yīng)的狀態(tài)提示;
乘客請(qǐng)求界面,用于按順序顯示乘客請(qǐng)求信息,并接收司機(jī)對(duì)乘客請(qǐng)求信息的操作指令,包括接通乘客請(qǐng)求或者掛斷乘客請(qǐng)求;
司機(jī)對(duì)講界面,用于顯示對(duì)端司機(jī)的對(duì)講請(qǐng)求信息,并接收司機(jī)對(duì)所述對(duì)講請(qǐng)求信息的操作指令;
音量調(diào)節(jié)單元,用于接收司機(jī)的音量調(diào)節(jié)指令;
網(wǎng)絡(luò)升級(jí)單元,用于通過(guò)網(wǎng)絡(luò)接口升級(jí)lcd顯示模塊的設(shè)備固件;
界面更新單元,用于對(duì)lcd顯示模塊中的多個(gè)界面進(jìn)行更新;
所述手動(dòng)廣播指令、緊急廣播指令、口播指令、操作指令和音量調(diào)節(jié)指令被傳送給所述業(yè)務(wù)功能模塊進(jìn)行處理。
所述lcd顯示模塊還包括:
廣播優(yōu)先級(jí)切換單元,用于根據(jù)司機(jī)指令對(duì)手動(dòng)廣播界面、緊急廣播界面和口播界面的優(yōu)先級(jí)進(jìn)行切換。
若所述乘客請(qǐng)求界面處于司機(jī)乘客對(duì)講狀態(tài),且所述司機(jī)對(duì)講界面接收并顯示對(duì)端司機(jī)的對(duì)講請(qǐng)求時(shí),自動(dòng)切換至司機(jī)對(duì)講界面的司機(jī)對(duì)講狀態(tài),掛起司機(jī)乘客對(duì)講狀態(tài)。
所述lcd顯示模塊還包括:
對(duì)講切換單元,用于在在司機(jī)對(duì)講狀態(tài)結(jié)束后切換至司機(jī)乘客對(duì)講狀態(tài)。
所述音量調(diào)節(jié)單元包括:
密碼認(rèn)證子單元,用于在音量調(diào)節(jié)時(shí)實(shí)現(xiàn)密碼認(rèn)證。
所述lcd顯示模塊還包括:
越站設(shè)置單元,用于接收越站信號(hào)和恢復(fù)越站信號(hào),并傳輸給業(yè)務(wù)功能模塊。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
(1)本發(fā)明設(shè)置有即時(shí)操作模塊,可實(shí)現(xiàn)嵌入式即時(shí)操作,能適應(yīng)長(zhǎng)時(shí)間工作的需要,在硬件和運(yùn)行環(huán)境沒(méi)有故障的情況下,可以連續(xù)運(yùn)行。當(dāng)局部有錯(cuò)誤發(fā)生時(shí),可采用異常忽略技術(shù),保證系統(tǒng)不會(huì)突然退出,在采用異常忽略技術(shù)的同時(shí),將異常記錄備案以便系統(tǒng)調(diào)試人員參考,提高了整個(gè)系統(tǒng)的穩(wěn)定性。
(2)本發(fā)明設(shè)置有網(wǎng)絡(luò)包收發(fā)處理模塊,網(wǎng)絡(luò)數(shù)據(jù)包、串口數(shù)據(jù)不會(huì)發(fā)生嚴(yán)重的延遲現(xiàn)象。
(3)通過(guò)本發(fā)明的控制系統(tǒng),多個(gè)揚(yáng)聲器的音頻播放不會(huì)發(fā)生明顯的不同步。
(4)本發(fā)明創(chuàng)造性的運(yùn)用了數(shù)字音頻、數(shù)據(jù)庫(kù)技術(shù),以以太網(wǎng)絡(luò)為主要通道,實(shí)現(xiàn)列車司機(jī)室對(duì)客室的控制、廣播。
(5)本發(fā)明具有網(wǎng)絡(luò)升級(jí)功能,設(shè)備固件升級(jí)更靈活方便。
(6)本發(fā)明采用全新的硬件pcb設(shè)計(jì),使數(shù)字廣播控制器具有更好的運(yùn)行環(huán)境。
附圖說(shuō)明
圖1為本發(fā)明的結(jié)構(gòu)示意圖;
圖2為本發(fā)明lcd顯示模塊的觸摸屏線程示意圖;
圖3為本發(fā)明lcd顯示模塊的控制線程示意圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。本實(shí)施例以本發(fā)明技術(shù)方案為前提進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
如圖1所示,本實(shí)施例提供一種應(yīng)用于列車的數(shù)字廣播控制系統(tǒng),包括即時(shí)操作模塊1、網(wǎng)絡(luò)包收發(fā)處理模塊2、業(yè)務(wù)功能模塊3、lcd顯示模塊4、數(shù)據(jù)庫(kù)接口模塊5和異常監(jiān)測(cè)模塊,其中,即時(shí)操作模塊1實(shí)現(xiàn)嵌入式實(shí)時(shí)操作;網(wǎng)絡(luò)包收發(fā)處理模塊2與即時(shí)操作模塊1連接,實(shí)現(xiàn)網(wǎng)絡(luò)包的接收和發(fā)送;業(yè)務(wù)功能模塊3分別連接即時(shí)操作模塊1和網(wǎng)絡(luò)包收發(fā)處理模塊2,根據(jù)接收到的命令執(zhí)行相應(yīng)操作;lcd顯示模塊4分別連接即時(shí)操作模塊1和業(yè)務(wù)功能模塊3,響應(yīng)即時(shí)操作模塊1的驅(qū)動(dòng),并向業(yè)務(wù)功能模塊3發(fā)送操作命令包;數(shù)據(jù)庫(kù)接口模塊5分別連接即時(shí)操作模塊1和業(yè)務(wù)功能模塊3,實(shí)現(xiàn)數(shù)據(jù)庫(kù)文件的讀取和寫(xiě)入;異常監(jiān)測(cè)模塊,與業(yè)務(wù)功能模塊連接,實(shí)時(shí)進(jìn)行異常監(jiān)測(cè),在監(jiān)測(cè)到有異常發(fā)生時(shí),啟動(dòng)異常忽略技術(shù),記錄該異常。
1、即時(shí)操作
即時(shí)操作模塊1包括與網(wǎng)絡(luò)包收發(fā)處理模塊3連接的網(wǎng)卡驅(qū)動(dòng)單元11、與lcd顯示模塊4連接的幀緩沖(framebuffer)驅(qū)動(dòng)單元12、與數(shù)據(jù)庫(kù)接口模塊5連接的文件存儲(chǔ)單元13和與業(yè)務(wù)功能模塊2連接的音頻驅(qū)動(dòng)單元14。
本實(shí)施例中,即時(shí)操作模塊1采用開(kāi)源即時(shí)操作系統(tǒng)ecos-3.0,它具有可配置、可移植、無(wú)版稅等特點(diǎn),非常適合嵌入式應(yīng)用開(kāi)發(fā),ecos采用層次結(jié)構(gòu)。本系統(tǒng)應(yīng)用ecos-3.0版支持的網(wǎng)絡(luò)棧、串口驅(qū)動(dòng)、flash驅(qū)動(dòng)、framebuffer驅(qū)動(dòng)、redboot、posix多線程等技術(shù),比如,網(wǎng)絡(luò)包收發(fā)處理就是一個(gè)單獨(dú)的線程,而業(yè)務(wù)功能app則由多個(gè)線程組成。
2、網(wǎng)絡(luò)包收發(fā)處理
本系統(tǒng)的網(wǎng)絡(luò)包收發(fā)處理模塊2中,網(wǎng)絡(luò)包以隊(duì)列形式傳遞,網(wǎng)絡(luò)數(shù)據(jù)包以目標(biāo)設(shè)備名、目標(biāo)設(shè)備號(hào)開(kāi)頭,由網(wǎng)絡(luò)app負(fù)責(zé)尋找對(duì)應(yīng)的ip地址。
網(wǎng)絡(luò)包收發(fā)處理過(guò)程以一個(gè)線程方式存在,其工作流程為:
上電之初,按照約定好的緩沖區(qū)名稱,依次打開(kāi)預(yù)先創(chuàng)建好的緩沖區(qū)隊(duì)列,作為線程的入口參數(shù);
進(jìn)入網(wǎng)絡(luò)收發(fā)線程后,首先創(chuàng)建一系列套接字,并讀取本地硬件i/o引腳,確定本地設(shè)備的類型、號(hào)碼,查詢數(shù)據(jù)庫(kù)中的ip表格,將本地ip地址與套接字綁定起來(lái);
進(jìn)入for(;;)無(wú)限循環(huán),利用select機(jī)制,監(jiān)聽(tīng)各個(gè)套接字。如果有新包到來(lái),就接收并存入對(duì)應(yīng)的緩沖區(qū)隊(duì)列;如果有新包發(fā)送,就從對(duì)應(yīng)的緩沖區(qū)隊(duì)列上取下一包,進(jìn)行發(fā)送。
為了加快線程輪轉(zhuǎn),每次處理完一個(gè)包的收發(fā)之后,主動(dòng)讓出一次cpu控制權(quán),供其他線程占用cpu。
3、業(yè)務(wù)功能
業(yè)務(wù)功能模塊2負(fù)責(zé)解析收到的lcd命令、網(wǎng)絡(luò)控制命令包后,解析這些命令,進(jìn)行工作狀態(tài)切換、音頻采樣與播放處理。業(yè)務(wù)功能模塊2包括命令解析單元和操作執(zhí)行單元,命令解析單元用于解析由lcd顯示模塊傳送的操作命令包和由網(wǎng)絡(luò)包收發(fā)處理模塊傳送的網(wǎng)絡(luò)包;操作執(zhí)行單元用于根據(jù)解析后獲得的命令執(zhí)行相應(yīng)操作,包括工作狀態(tài)切換、自動(dòng)報(bào)站、手動(dòng)報(bào)站、緊急廣播、口播、司機(jī)對(duì)講和司機(jī)乘客對(duì)講。
業(yè)務(wù)功能模塊實(shí)現(xiàn)的功能由多個(gè)線程組成,完成自動(dòng)報(bào)站、手動(dòng)報(bào)站、緊急廣播、口播、司機(jī)對(duì)講、司機(jī)乘客對(duì)講等功能,涉及到工作狀態(tài)切換、音頻播放等兩個(gè)主要方面。工作狀態(tài)切換由一個(gè)線程負(fù)責(zé),該線程每次從隊(duì)列上取下一個(gè)網(wǎng)絡(luò)控制包,解析后,根據(jù)業(yè)務(wù)的優(yōu)先級(jí),進(jìn)行狀態(tài)切換,即當(dāng)前狀態(tài)的退出、新?tīng)顟B(tài)的進(jìn)入。這種狀態(tài)切換可采用現(xiàn)有的多種方法。
4、lcd顯示
lcd顯示模塊4用于實(shí)現(xiàn)與司機(jī)的互動(dòng),上電后,lcd進(jìn)入待機(jī)截面,等待司機(jī)操作,若lcd檢測(cè)收到tms信號(hào),則簡(jiǎn)單顯示tms信號(hào)內(nèi)容,司機(jī)觸屏操作,lcd將向業(yè)務(wù)功能app發(fā)送操作命令包。
lcd顯示模塊4包括:
手動(dòng)廣播界面,用于接收司機(jī)的手動(dòng)廣播指令;
緊急廣播界面,用于接收司機(jī)的緊急廣播指令和顯示緊急廣播詞;
口播界面,用于接收司機(jī)的口播指令,并顯示相應(yīng)的狀態(tài)提示;
乘客請(qǐng)求界面,用于按順序顯示乘客請(qǐng)求信息,并接收司機(jī)對(duì)乘客請(qǐng)求信息的操作指令,包括接通乘客請(qǐng)求或者掛斷乘客請(qǐng)求;
司機(jī)對(duì)講界面,用于顯示對(duì)端司機(jī)的對(duì)講請(qǐng)求信息,并接收司機(jī)對(duì)對(duì)講請(qǐng)求信息的操作指令;
若乘客請(qǐng)求界面處于司機(jī)乘客對(duì)講狀態(tài),且司機(jī)對(duì)講界面接收并顯示對(duì)端司機(jī)的對(duì)講請(qǐng)求時(shí),自動(dòng)切換至司機(jī)對(duì)講界面的司機(jī)對(duì)講狀態(tài),掛起司機(jī)乘客對(duì)講狀態(tài);
音量調(diào)節(jié)單元,用于接收司機(jī)的音量調(diào)節(jié)指令,包括用于在音量調(diào)節(jié)時(shí)實(shí)現(xiàn)密碼認(rèn)證的密碼認(rèn)證子單元;
網(wǎng)絡(luò)升級(jí)單元,用于通過(guò)網(wǎng)絡(luò)接口升級(jí)lcd顯示模塊的設(shè)備固件;
界面更新單元,用于對(duì)lcd顯示模塊中的多個(gè)界面進(jìn)行更新;
手動(dòng)廣播指令、緊急廣播指令、口播指令、操作指令和音量調(diào)節(jié)指令被傳送給業(yè)務(wù)功能模塊進(jìn)行處理。
本實(shí)施例中,lcd顯示模塊4通過(guò)一觸摸屏實(shí)現(xiàn)與司機(jī)的互動(dòng),所述觸摸屏可采用800x480的液晶顯示屏。該觸摸屏采用fltk窗口部件、microwindows進(jìn)行g(shù)ui編程,其觸摸屏線程和控制線程如圖2和圖3所示。其中,microwindows使用自帶的nano-x圖形編程接口。開(kāi)發(fā)人員調(diào)用fltkapi進(jìn)行界面編程,而fltkapi將會(huì)自動(dòng)調(diào)用nano-x接口(編譯fltk環(huán)境時(shí),配置過(guò)),nano-x接口負(fù)責(zé)調(diào)用microwindowsapi函數(shù)進(jìn)行圖形繪制。microwindows使用操作系統(tǒng)ecos支持的framebuffer驅(qū)動(dòng),作為底層圖形支持引擎。另外,還要根據(jù)自己的硬件設(shè)計(jì)進(jìn)行修改ecos硬件抽象層。bcu界面設(shè)計(jì)采用fltk進(jìn)行可視化設(shè)計(jì)。
本發(fā)明的另一實(shí)施例中,lcd顯示模塊4還包括:廣播優(yōu)先級(jí)切換單元,用于根據(jù)司機(jī)指令對(duì)手動(dòng)廣播界面、緊急廣播界面和口播界面的優(yōu)先級(jí)進(jìn)行切換。
本發(fā)明的另一實(shí)施例中,lcd顯示模塊4還包括對(duì)講切換單元,用于在在司機(jī)對(duì)講狀態(tài)結(jié)束后切換至司機(jī)乘客對(duì)講狀態(tài)。
本發(fā)明的另一實(shí)施例中,lcd顯示模塊4還包括越站設(shè)置單元,用于接收越站信號(hào)和恢復(fù)越站信號(hào),并傳輸給業(yè)務(wù)功能模塊。
基于上述lcd顯示模塊的結(jié)構(gòu),本系統(tǒng)觸摸屏支持以下功能:
a.支持手動(dòng)廣播。手動(dòng)廣播界面顯示的站臺(tái)信息必須跟當(dāng)前運(yùn)營(yíng)區(qū)間內(nèi)站臺(tái)一致。此外,手動(dòng)廣播界面需要提供“下一站”按鈕,司機(jī)只需要點(diǎn)擊該按鈕,會(huì)依次播報(bào)站臺(tái)信息。站臺(tái)信息完全從數(shù)據(jù)庫(kù)中讀取并顯示。
b.支持緊急廣播。緊急廣播界面需要顯示緊急廣播詞,每頁(yè)顯示3條緊急廣播詞。通過(guò)上下翻頁(yè)按鈕,顯示ptu軟件中設(shè)置的所有緊急廣播。緊急廣播界面還需要提供緊急廣播播放次數(shù)選擇按鈕。緊急廣播詞完全從數(shù)據(jù)庫(kù)中讀取并顯示。
c.支持口播、3d5和occ。觸摸屏?xí)@示現(xiàn)有狀態(tài)的提示界面。
d.支持乘客報(bào)警器請(qǐng)求。觸摸屏?xí)鶕?jù)乘客報(bào)警器請(qǐng)求順序來(lái)顯示乘客報(bào)警器的請(qǐng)求信息。司機(jī)可以選擇性接通或者掛斷請(qǐng)求的乘客報(bào)警器。
e.支持司機(jī)對(duì)講。
f.支持廣播優(yōu)先級(jí)切換。會(huì)根據(jù)ptu中設(shè)置的事件優(yōu)先級(jí),從而按照優(yōu)先級(jí)來(lái)調(diào)整手動(dòng)廣播、緊急廣播和口播按鈕的位置。
g.支持對(duì)講優(yōu)先級(jí)切換。司機(jī)與乘客對(duì)講過(guò)程中對(duì)端司機(jī)發(fā)起對(duì)講請(qǐng)求。自動(dòng)司機(jī)對(duì)講,掛起司機(jī)乘客對(duì)講。觸摸屏需要提供切換按鈕,使得退出司機(jī)對(duì)講,切換回司機(jī)乘客對(duì)講。
h.支持監(jiān)聽(tīng)音量、客室音量、司機(jī)對(duì)講音量和司機(jī)乘客對(duì)講音量的調(diào)節(jié)。音量的調(diào)節(jié)需要密碼認(rèn)證。
i.支持越站功能??梢栽O(shè)置或者恢復(fù)越站。
j.支持網(wǎng)絡(luò)升級(jí)功能??梢酝ㄟ^(guò)網(wǎng)絡(luò)接口升級(jí)設(shè)備固件。
5、數(shù)據(jù)庫(kù)接口
數(shù)據(jù)庫(kù)api接口部分,采用開(kāi)源sqlite3。sqlite3具有以下特點(diǎn):支持大多數(shù)的sql指令;不需要安裝數(shù)據(jù)庫(kù)服務(wù)器軟件;一個(gè)db檔案(文件)就是一個(gè)數(shù)據(jù)庫(kù);速度相對(duì)較快;一個(gè)獨(dú)立開(kāi)源.c文件,直接參與應(yīng)用層編譯,提供api函數(shù)調(diào)用等。sqlite3官方將所有源碼包融合在一個(gè)大文件,即sqlite3.c、sqlite.h。它們可以作為普通的.c文件,參與編譯,其他.c文件直接引用sqlite3.c中的函數(shù),將sql語(yǔ)句轉(zhuǎn)換成字符串?dāng)?shù)據(jù),就可以實(shí)現(xiàn)sql的操作。
本系統(tǒng)使用數(shù)據(jù)庫(kù)技術(shù),主要是“讀數(shù)據(jù)庫(kù)”操作,初始化期間,從數(shù)據(jù)庫(kù)文件中,將報(bào)站信息、配置信息讀入內(nèi)存,然后根據(jù)這些信息,進(jìn)行報(bào)站、配置系統(tǒng)。數(shù)據(jù)庫(kù)文件位于文件存儲(chǔ)單元中,只要更新數(shù)據(jù)庫(kù)文件,系統(tǒng)軟件重啟或硬件復(fù)位之后,即可實(shí)現(xiàn)業(yè)務(wù)變更。