LPC2365的μC/OS-II 下多串口通信編程
摘要:介紹了以LPC2365為核心處理器、嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II下的多串口通信編程方法。對于固定長度的短字節(jié)幀數(shù)據(jù),通過設(shè)置合適的字節(jié)觸發(fā)深度,一次中斷完成數(shù)據(jù)接收任務(wù);對于變長的長字節(jié)幀數(shù)據(jù),則通過多次中斷和等待延時(shí)的方法判斷數(shù)據(jù)穩(wěn)定并完成幀數(shù)據(jù)的接收;對于大量數(shù)據(jù)的接收和發(fā)送采用建立FIFO數(shù)據(jù)隊(duì)列的方法。
通過這些措施較好地完成了多串口較大數(shù)據(jù)量的通信任務(wù)。
關(guān)鍵詞:嵌入式系統(tǒng);實(shí)時(shí)操作系統(tǒng);互斥信號量;數(shù)據(jù)隊(duì)列
引言
國產(chǎn)某掠海恒高硬體拖靶在拖曳飛行時(shí),需要將自身的各種參數(shù)通過無線鏈路實(shí)時(shí)上傳至拖曳母機(jī),同時(shí)實(shí)時(shí)接收拖曳母機(jī)的遙控指令完成相應(yīng)的動作。拖靶自身的參數(shù)包括:開關(guān)高控狀態(tài)、蓄電池電壓、無線電高度表值、飛行高度裝定值、垂向加速度值、舵翼角、溫度值、普通性能GPS接收機(jī)輸出的主要參數(shù)值、高性能測量GPS接收機(jī)輸出的主要參數(shù)值等。其中,前面7項(xiàng)由一塊采集板完成采集并裝配成幀數(shù)據(jù),通過RS232串口以9 600 bps的波特率、1 Hz的速率輸出。
數(shù)據(jù)幀長度固定為12字節(jié),同時(shí)接收6字節(jié)/幀的遙控指令數(shù)據(jù)。普通性能GPS接收機(jī)以9 600 bps的波特率、1 Hz的速率輸出$GPGGA和$GPRMC兩條語句,其字節(jié)數(shù)可變,但最多不超過1 60字節(jié);高性能GPS則以57 600 bps的波特率、20 Hz的速率輸出RT、RD、TO、SI、RC、CP、DC、FC、PV 9個(gè)參數(shù),這些總的參數(shù)數(shù)據(jù)量隨所觀測到的衛(wèi)星數(shù)目而變化,但最多不超過305字節(jié)。
現(xiàn)在需要將采集板和普通性能GPS接收機(jī)的數(shù)據(jù)組成每幀75字節(jié)數(shù)據(jù)(如果收到遙控指令時(shí),則需要一次返回3幀同樣數(shù)據(jù))、以每秒一幀的速率上傳至拖曳母機(jī)以供實(shí)時(shí)顯示。將高性能測量GPS接收機(jī)輸出的數(shù)據(jù)直接上傳至拖曳母機(jī)存儲以供事后處理。由此可見這是一個(gè)典型的多串口較大數(shù)據(jù)量的通信應(yīng)用問題。
1 工作原理
利用具有多個(gè)串口資源的ARM7處理器LPC2365芯片分別實(shí)時(shí)接收數(shù)據(jù)采集板和普通性能GPS接收機(jī)發(fā)送過來的數(shù)據(jù),并按要求進(jìn)行組幀后,通過互斥型信號量存入FIFO類型的發(fā)送數(shù)據(jù)隊(duì)列中;將接收到的高性能GPS接收機(jī)數(shù)據(jù)也存入同一發(fā)送數(shù)據(jù)隊(duì)列中;當(dāng)發(fā)送數(shù)據(jù)隊(duì)列不為空時(shí),通過一個(gè)二值信號量啟動串口發(fā)送任務(wù)進(jìn)行數(shù)據(jù)的發(fā)送,直到一幀數(shù)據(jù)發(fā)送完畢為止。發(fā)送數(shù)據(jù)流向示意圖如圖1所示。
應(yīng)用程序是基于嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II編寫完成的,針對不同的功能創(chuàng)建不同的任務(wù),包括串口接收任務(wù)、串口發(fā)送任務(wù)、組幀任務(wù)等。
2 硬件設(shè)計(jì)
主控CPU選用NXP公司生產(chǎn)的ARM7處理器LPC2365,該芯片擁有256 KB的Flash存儲器、32 KB的SRAM、4個(gè)全雙工UART串口以及多達(dá)70個(gè)通用I/O端口,硬件資源非常豐富。4個(gè)全雙丁串口可分別與數(shù)據(jù)采集板、普通性能GPS接收機(jī)、高性能GPS接收機(jī)以及數(shù)傳模塊進(jìn)行通信;256 KB的Flash存儲器和32 KB的SRAM可以存儲和運(yùn)行嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II下的應(yīng)用程序。
由于高性能GPS接收機(jī)以57 600 bps的波特率、20Hz的速率和305字節(jié)/幀的數(shù)據(jù)量輸出數(shù)據(jù),其數(shù)據(jù)量占空比高達(dá)85%,考慮到還需要下傳其他參數(shù)信息,因此應(yīng)選用波特率更高的數(shù)傳模塊完成數(shù)據(jù)傳輸任務(wù)。
美國GE MDS公司生產(chǎn)的EL806數(shù)傳模塊擁有先進(jìn)的調(diào)頻擴(kuò)頻技術(shù),在902~928 MHz頻段上提供了速率最高可達(dá)115 200 bps(連續(xù)工作)的工業(yè)級的無線通信設(shè)備;在無線數(shù)據(jù)通信的可靠性、完整性和糾錯(cuò)能力方面具有較強(qiáng)優(yōu)勢;同時(shí),該產(chǎn)品具有供電范圍較寬、功耗較低、功率可達(dá)1 W、環(huán)境適應(yīng)性較強(qiáng)的工業(yè)級性能。硬件系統(tǒng)框圖如圖2所示。
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
評論