【《基于實(shí)現(xiàn)功耗較低目的的窄帶數(shù)據(jù)傳輸終端設(shè)計(jì)》11000字論文】_第1頁
【《基于實(shí)現(xiàn)功耗較低目的的窄帶數(shù)據(jù)傳輸終端設(shè)計(jì)》11000字論文】_第2頁
【《基于實(shí)現(xiàn)功耗較低目的的窄帶數(shù)據(jù)傳輸終端設(shè)計(jì)》11000字論文】_第3頁
【《基于實(shí)現(xiàn)功耗較低目的的窄帶數(shù)據(jù)傳輸終端設(shè)計(jì)》11000字論文】_第4頁
【《基于實(shí)現(xiàn)功耗較低目的的窄帶數(shù)據(jù)傳輸終端設(shè)計(jì)》11000字論文】_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于實(shí)現(xiàn)功耗較低目的的窄帶數(shù)據(jù)傳輸終端設(shè)計(jì)度,本數(shù)據(jù)終端采用了MSM01A天通模塊,利用天通衛(wèi)星通信技文章基于天通衛(wèi)星、STM32單片機(jī)設(shè)計(jì)出一款數(shù)據(jù)傳輸終端,為遠(yuǎn)海與岸目錄 11.2國內(nèi)外研究狀況 1 11.2.2嵌入式網(wǎng)絡(luò)協(xié)議的研究現(xiàn)狀 2 21.3本文研究的主要內(nèi)容 32.終端硬件設(shè)計(jì)2.1天通終端通信的硬件選型 42.2天通模塊的通信接口 62.3STM32單片機(jī)的選型 62.4數(shù)據(jù)傳輸方式 73.Lwip協(xié)議棧的分析3.1Lwip協(xié)議特點(diǎn) 93.2Lwip進(jìn)程模式 93.2.1傳統(tǒng)的TCP/IP協(xié)議棧進(jìn)程模式 9 4.2FreeRTOS在STM32上的移植 5.Lwip在FreeRTOS平臺(tái)下的移植實(shí)現(xiàn)5.1移植接口分析 5.2操作系統(tǒng)模擬層的實(shí)現(xiàn) 5.2.4文件sys_arch.c的修 5.3硬件驅(qū)動(dòng)層的實(shí)現(xiàn) 21 6.2測(cè)試過程遇到的問題以及解決方案 6.2.1數(shù)據(jù)終端收不到平臺(tái)下發(fā)的AT指令 6.2.2PPP撥號(hào)失敗 7.2展望 中國大陸是一個(gè)位于西北太平洋沿岸并且擁有長達(dá)18000多千米的大陸海岸線,占地200多萬平方千米的海洋漁場(chǎng)和130多萬平方千米大陸架面積的地方。而中華民族長期生存繁衍的重要基礎(chǔ)則是這些管轄海域。并且我國還可以很便利地進(jìn)入世界各個(gè)大洋,還可以對(duì)公海與國際海底區(qū)域里的海洋資源進(jìn)行開發(fā)到目前為止,我國的海洋數(shù)據(jù)傳輸一般情況下利用的是傳統(tǒng)的有線網(wǎng)絡(luò)傳輸技術(shù),建設(shè)費(fèi)用比重較大。在途中需要檢測(cè)有線通信鏈路的維護(hù)情況,當(dāng)故障發(fā)生時(shí)故障點(diǎn)一般很難被找到。在用戶設(shè)定通信網(wǎng)絡(luò)后,在系統(tǒng)的需求下,通常會(huì)增加新的設(shè)備,在使用有線傳輸就可能需要重新布置線路。因此,發(fā)展無線網(wǎng)絡(luò)傳輸勢(shì)在必行,不但能更好地節(jié)約人力物力,經(jīng)濟(jì)效益也能得到顯著地提升。海洋的無線通信傳輸有諸多優(yōu)點(diǎn),綜合成本低,性能更穩(wěn)定,從而擺脫線纜的束縛;組網(wǎng)靈活,可擴(kuò)展性好;維護(hù)費(fèi)用低等。當(dāng)前運(yùn)用于海洋的無線通信技術(shù)有無線微波通信、基于陸地蜂窩網(wǎng)絡(luò)的岸基移動(dòng)通信和衛(wèi)星通信等。其中,衛(wèi)星通信是未來無線通信的大趨勢(shì),在海洋信息化建設(shè)中扮演了十分重要的角色。天通一號(hào)衛(wèi)星作為我國自主研發(fā)的通信衛(wèi)星,具備可靠性、可信賴性以及高性價(jià)比,從而很好地解決海洋數(shù)據(jù)無線傳輸問題。1.2.1無線數(shù)據(jù)傳輸技術(shù)的研究現(xiàn)狀無線數(shù)據(jù)傳輸是現(xiàn)在乃至未來國際社會(huì)主流的通信方式,無線數(shù)據(jù)傳輸技術(shù)將會(huì)促進(jìn)國際社會(huì)的數(shù)字化、信息化發(fā)展。無線數(shù)據(jù)傳輸技術(shù)大概可以分為兩種:第一種是專網(wǎng)無線傳輸:專網(wǎng)無線傳輸?shù)木唧w例子有Wi-Fi、MDS數(shù)傳電臺(tái)、2G、3G、4G分別是第二代、第三代、第四代移動(dòng)信息系統(tǒng),速度越來越快,目前普及的5G通信技術(shù),它的圖像傳輸?shù)乃俣瓤?、傳輸圖像的質(zhì)量以及傳輸?shù)膱D像看起來更加清晰明了。通過對(duì)智能通信設(shè)備的應(yīng)用,5G通信技術(shù)讓用戶的上網(wǎng)速度可高達(dá)10G/s,讓用戶能夠更加快速的上網(wǎng)。在這眾多的技術(shù)中,傳輸速度是受開發(fā)者重視的主要參數(shù),天通衛(wèi)星的傳輸速度也十分優(yōu)異,作為我國目前在軌運(yùn)行的通信衛(wèi)星,傳輸速率比美國銥星還要快。且2021年剛發(fā)射的天通一號(hào)03星,將與天通一號(hào)01星、02星組網(wǎng)運(yùn)行,覆蓋范圍更廣,足夠?yàn)榇蟛糠趾S蛴脩籼峁┩ㄐ欧?wù)。因此采用天通通信模塊制作無線數(shù)據(jù)傳輸終端,并將其應(yīng)用在海事上,是十分合理的選擇。1.2.2嵌入式網(wǎng)絡(luò)協(xié)議的研究現(xiàn)狀嵌入式設(shè)備的入網(wǎng),依賴于嵌入式網(wǎng)絡(luò)協(xié)議,目前主流的嵌入式網(wǎng)絡(luò)協(xié)議有uIP、uc/IP、Lwip等。它們各有優(yōu)點(diǎn)和缺點(diǎn),應(yīng)用于不同的應(yīng)用場(chǎng)合。uIP是一個(gè)極小型嵌入式網(wǎng)絡(luò)協(xié)議棧,通常應(yīng)用于小型的嵌入式設(shè)備。在具備TCP/IP協(xié)議棧基本功能的基礎(chǔ)上,優(yōu)化了通訊流程。但應(yīng)用上也具有一定的uc/IP是一個(gè)基于uC/OS操作系統(tǒng)的嵌入式網(wǎng)絡(luò)協(xié)議。優(yōu)點(diǎn)在于支持多種協(xié)議,例如PPP協(xié)議、嵌入式以太網(wǎng)協(xié)議。缺點(diǎn)在于應(yīng)用層面針對(duì)uC/OS操作系統(tǒng)的局限性。Lwip是一款不管有無操作系統(tǒng)的支持都可以運(yùn)行的LightWeight(輕型)IP協(xié)議。Lwip在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對(duì)RAM的占用是它實(shí)現(xiàn)的重點(diǎn),它在運(yùn)行時(shí)只需要十幾KB的RAM和40K左右的ROM。雖然Lwip是專門為嵌入式系統(tǒng)開發(fā)的精簡版、輕量級(jí)的網(wǎng)絡(luò)協(xié)議,但是功能還是比較全面的。除此之外,它可以支持傳統(tǒng)TCP/IP協(xié)議的基本功能外 (IP/ICMP/UDP/TCP),另外還可以支持包括其他一些機(jī)制。例如緩沖與內(nèi)存管理子系統(tǒng)、操作系統(tǒng)模擬層、網(wǎng)絡(luò)接口、Intemet校驗(yàn)和計(jì)算及API接口等機(jī)作為數(shù)據(jù)傳輸終端的網(wǎng)絡(luò)協(xié)議。針對(duì)實(shí)時(shí)性的要求不同,嵌入式操作系統(tǒng)可分為硬實(shí)時(shí)操作系統(tǒng)和軟實(shí)時(shí)操作系統(tǒng)。對(duì)時(shí)間的要求較低的是軟實(shí)時(shí)操作系統(tǒng),一般應(yīng)用于智能設(shè)備;對(duì)時(shí)間的要求較高的是硬實(shí)時(shí)操作系統(tǒng),主流的硬實(shí)時(shí)操作系統(tǒng)有Linux、ucLinux、FreeRTOS等。Linux是一個(gè)開源的嵌入式操作系統(tǒng)。內(nèi)置標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議。用戶可針對(duì)各自的需求,對(duì)內(nèi)核進(jìn)行功能上的剪裁、移植。但由于開發(fā)的實(shí)現(xiàn)是基于命令行或者腳本,造成了開發(fā)的門檻高、開發(fā)困難。更值得開發(fā)者重視的是,Linux內(nèi)核的搶占式實(shí)時(shí)特性以及不支持事件優(yōu)先級(jí),因此Linux不算是嚴(yán)格意義上的實(shí)時(shí)ucLinux算是精簡版的Linux,它具備Linux的大部分功能,是市面上應(yīng)用較廣的操作系統(tǒng)。但和Linux相同,并不算是真正意義上的實(shí)時(shí)操作系統(tǒng)。FreeRTOS是一種開源、輕量級(jí)的實(shí)時(shí)操作系統(tǒng),被廣泛應(yīng)用于中小型嵌入式設(shè)備,在性能優(yōu)異的基礎(chǔ)上,開發(fā)也靈活,具有代碼公開、可進(jìn)行移植、也可裁減、調(diào)度策略靈活等特點(diǎn),能夠更方便地移植到各個(gè)單片機(jī)上實(shí)施運(yùn)行。目前,F(xiàn)reeRTOS在國內(nèi)的應(yīng)用領(lǐng)域并不大,但隨著時(shí)代的發(fā)展,相信它的優(yōu)勢(shì)也將越來越被開發(fā)者重視,因此本終端設(shè)計(jì)選用FreeRTOS作為實(shí)時(shí)操作系本論文設(shè)計(jì)的基于天通一號(hào)的窄帶數(shù)據(jù)傳輸終端,是通過解析天通模塊的通信協(xié)議給出的設(shè)計(jì)方法。在硬件設(shè)計(jì)方面,包括天通模塊與STM32開發(fā)板。在程序方面,編輯相關(guān)的數(shù)據(jù)傳輸協(xié)議。本論文用六個(gè)章節(jié)來闡述,每個(gè)章節(jié)的內(nèi)容簡介如下:第一章,緒論。此章節(jié)簡明的介紹了海洋資源開發(fā)的意義、海洋數(shù)據(jù)信息化的重要性、天通衛(wèi)星在海事數(shù)據(jù)傳輸?shù)闹匾匚?,并簡要概括了本文的研究?nèi)容和設(shè)計(jì)思路。第二章,終端硬件設(shè)計(jì)。首先,根據(jù)海事數(shù)據(jù)傳輸?shù)木唧w需求和場(chǎng)合限制,分析我國天通衛(wèi)星通信系統(tǒng)的相關(guān)技術(shù),對(duì)現(xiàn)有的天通通信模塊進(jìn)行選型;其次,簡要介紹天通模塊的通信接口;最后根據(jù)天通模塊的特性,對(duì)現(xiàn)有的單片機(jī)開發(fā)板進(jìn)行選型,簡要介紹單片機(jī)的基本特性以及數(shù)據(jù)傳輸方式。第三章,Lwip協(xié)議棧的分析。首先是介紹Lwip協(xié)議的特點(diǎn),其次是介紹Lwip的進(jìn)程模式。第四章,實(shí)現(xiàn)了實(shí)時(shí)操作系統(tǒng)FreeRTOS的移植。FreeRTOS操作系統(tǒng)內(nèi)核結(jié)構(gòu)為主要的研究目標(biāo)。并完成FreeRTOS在STM32開發(fā)板上的移植。第五章,Lwip在FreeRTOS平臺(tái)下的移植實(shí)現(xiàn)。第六章,實(shí)驗(yàn)測(cè)試。主要對(duì)數(shù)據(jù)傳輸終端進(jìn)行功能性測(cè)試,以及測(cè)試過程遇到的問題和解決方案。2.終端硬件設(shè)計(jì)過AT指令傳輸數(shù)據(jù)的。結(jié)合海事數(shù)據(jù)傳輸?shù)木唧w需求和場(chǎng)合限制,決定采用MSM01A模塊作為天通終端通信的模塊。MSM01A模塊的基本特性如表2-1:備注工作S發(fā)射:1980MHz~2010MHz;北斗(B1);GPS(L1);GLONASS(L1);GALILE0(E1)令最大遵循3GPPTS27.005;3GPPTS27.007;ITU-TV.25ter功率溫度工作溫度:-40℃-+55℃范圍存儲(chǔ)溫度:-50℃+70℃高溫高相對(duì)濕度環(huán)境:(95±3)%(>40℃)濕度電磁兼容性滿足GJB151A-1997中陸軍地面設(shè)備RE102、RS103兩項(xiàng)要求規(guī)定的項(xiàng)目結(jié)構(gòu)長*寬*高:≤55×33×5(mm)終端能力如圖2-1所示,圖中為MSM01A模塊的整體架構(gòu)圖,圖中標(biāo)明了主要的功基帶單元為:基帶處理芯片:MCP內(nèi)存芯片:MSCO1A;包括NAND與SDRAM。射頻單元為:射頻收發(fā)芯片:MSR01A;功放芯片為;射頻開關(guān)為;26M壓控振蕩器;電源處理與接口單元為:PMU芯片內(nèi)部集成電源管理單元和CODEC單元;應(yīng)用接口為:52腳金手指接口;射頻接口為:S/BD天線連接器。MSC01A是一款基帶芯片并以衛(wèi)星通信為基礎(chǔ)的芯片。MSC01A使用的是高性能低功耗的CMOS技術(shù),采用40nmLP(Low-Power)制造工藝以及364腳采納雙核架構(gòu),包括1個(gè)SIM卡、2個(gè)SDMMC卡接口。還可以在外部連接MobileSDRAM和靜態(tài)存儲(chǔ)MSR01A是還是一款支持在移動(dòng)衛(wèi)星通信系統(tǒng)設(shè)計(jì)的高集成度的基礎(chǔ)上的一個(gè)射頻收發(fā)器芯片。這個(gè)芯片只需要配置功放、2.2天通模塊的通信接口UART接口是一個(gè)通信接口,與主機(jī)連接,根據(jù)于16550標(biāo)準(zhǔn)要求設(shè)計(jì),UART接口的速率缺省為115.2kbps,可以利用相關(guān)的AT指令動(dòng)態(tài)配置從9600bps到921.6kbps。UART信號(hào)定義如圖2-2所示:表2-2UART接□定義信號(hào)名稱屬性描述參數(shù)輸出UART數(shù)據(jù)輸出邏輯0為低電平(0V電平);邏輯1為高電平(1.8V電輸出STM32單片機(jī)的內(nèi)核是為ARM公司為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的Cortex-M內(nèi)核,它屬于新的基于ARM內(nèi)核的32位MCUCortex-M系列是ARMv7架構(gòu)的一種。ARMv7架構(gòu)中表明了三大分工明確中,Cortex-M3內(nèi)核技術(shù)更加成熟、操作也更加簡單。首先,由于Cortex-M3內(nèi)功耗僅有0.19mV/MHz,與ARM7TDMI相比改進(jìn)了30%,并且使用了單周期的乘法和硬件除法和不可分的位操作,實(shí)現(xiàn)了對(duì)RAM、I/O和寄存器的最優(yōu)選擇的令的密度并實(shí)現(xiàn)32位指令性能(與ARM7TDMI的ARM模式比減少了30%—45%的代碼量)。然后,Cortex-M3還擁有可以預(yù)見的運(yùn)轉(zhuǎn)時(shí)間,終端控制器被鑲嵌在內(nèi)核之中,中斷之間的間隔最少可以低至6個(gè)CPU周期,然而從低功耗模式喚醒僅需6個(gè)CPU周期。到最后,Cortex-M3擁有改進(jìn)的調(diào)節(jié)功能,例如串行單步調(diào)試和JTAG調(diào)試等。Cortex-M3芯片的結(jié)構(gòu)如圖2-3所示:STM32單片機(jī)與天通模塊采用串口通信,傳輸方式為DMA(Dir然而,CPU通常需要處理大量的事務(wù),如果可以盡可能地減輕CPU的負(fù)擔(dān),對(duì)如圖2-4所示:STM32單片機(jī)和MSM01A天通模塊的實(shí)物如圖2-5所示:瑞典計(jì)算機(jī)科學(xué)研究院(SICS,SwedishInstituteofComputerScience)AdamDunkels研究設(shè)計(jì)的一種基于開源的嵌入式輕量級(jí)TCP/IP協(xié)議棧叫做嵌入式網(wǎng)絡(luò)協(xié)議Lwip。這個(gè)設(shè)計(jì)最初的目的是減少系統(tǒng)內(nèi)存的使用率,以及縮短減少工程代碼,是專門針對(duì)資源較少的嵌入式系統(tǒng)去開發(fā)的一款網(wǎng)絡(luò)協(xié)議。Lwip是一款不管有無操作系統(tǒng)的支持都可以運(yùn)行的LightWeight(輕型)IP協(xié)議。Lwip在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對(duì)RAM的占用是它實(shí)現(xiàn)的重點(diǎn),它在運(yùn)行時(shí)只需要十幾KB的RAM和40K左右的ROM,這就是Lwip協(xié)這樣就可以讓Lwip更適合地運(yùn)用于資源有限的小型平臺(tái)比如嵌入式系統(tǒng)。為了(1)可以支持多網(wǎng)絡(luò)接口下的IP轉(zhuǎn)發(fā);(2)支持應(yīng)用ICMP協(xié)議;(3)包含實(shí)驗(yàn)性擴(kuò)展的UDP(用戶數(shù)據(jù)報(bào)協(xié)議);(4)包含阻塞控制,RTT估算和迅速恢復(fù)和迅速轉(zhuǎn)發(fā)的TCP(傳輸控制協(xié)(5)提供專門的內(nèi)部回調(diào)接□(RawAPI)來用于增強(qiáng)應(yīng)用程序的性能;(6)可以選擇的Berkeley接□API(多線程情況下);(7)在最新的版本中支持ppp(這特別適合我們的實(shí)際應(yīng)用,避免重新去寫(8)新版本中增多了的IPfragment的支持.(9)支持DHCP協(xié)議和動(dòng)態(tài)分配IP地址。議的基本功能外(IP/ICMP/UDP/TAPI接口等機(jī)制,如此這樣,就在很大程度上方便了嵌入式系統(tǒng)的開發(fā)。3.2Lwip進(jìn)程模式3.2.1傳統(tǒng)的TCP/IP協(xié)議棧進(jìn)程模式眾人周知,傳統(tǒng)的TCP/IP協(xié)議棧擁有下面兩種不同的進(jìn)程模式。第一種:Lwip使用的進(jìn)程模式就是將所有層的協(xié)議以函數(shù)調(diào)試用的形式,全部都停實(shí)現(xiàn)完成的,并直接調(diào)用協(xié)議中自帶的API函數(shù)來完成實(shí)現(xiàn)和協(xié)議棧通信。的數(shù)據(jù)都是通過其下層協(xié)議來承受記錄并進(jìn)行封裝的。Lwip的結(jié)構(gòu)分層如圖3-3所示:第一層,為MCU的業(yè)務(wù)層,這一層是Lwip來提供服務(wù)的對(duì)就是自己的代碼使用Lwip的地方?;旧蠌倪@個(gè)地方開始就通過netconn或是Lwip_api開始使用Lwip的功能。從典型的TCP客戶端應(yīng)用來看,首先需要通過第二層為Lwip的api層,也就是netconn的功能代碼所存在的地方,這一層實(shí)現(xiàn)了大部分的TCP,UDP功能,還完成實(shí)現(xiàn)了ICMP,IGMP等協(xié)議。與此同時(shí)還實(shí)現(xiàn)了mem內(nèi)存管理和netif網(wǎng)絡(luò)接口的功能。這一層次提供了一個(gè)簡便的現(xiàn)線程才創(chuàng)建,消息隊(duì)列,信號(hào)燈等功能,和操作系統(tǒng)相關(guān)的實(shí)定義寫在第四層則是硬件驅(qū)動(dòng)層,提供了PHY芯片的驅(qū)動(dòng),把LwipLwip會(huì)使用這一層的代碼把組好的數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)中,與此同時(shí)也會(huì)通過這4.實(shí)時(shí)操作系統(tǒng)FreeRTOS的移植實(shí)現(xiàn)式實(shí)時(shí)操作系統(tǒng)(RTOS)能夠使CPU的資源更合理、更有效地被利用,簡化應(yīng)為RTOS需要利用一定的系統(tǒng)資源(尤其是RAM資源),所以只有embOS、是其中FreeRTOS只是一個(gè)操作系統(tǒng)中最小的內(nèi)核,開發(fā)者需要自己候官方資源也會(huì)給出部分demo例程和比較完整地說明文檔,因此開發(fā)者可以得實(shí)時(shí)操作系統(tǒng)FreeRTOS和其他的嵌入式操作系統(tǒng)相似,系統(tǒng)內(nèi)核包含大部分,如下圖4-1所示。其中包含任務(wù)管理、時(shí)間管理在進(jìn)行移植之前,第一步要做得是對(duì)硬件平臺(tái)的測(cè)試信度。第二步是再硬件平臺(tái)無誤時(shí),再逐步對(duì)操作系統(tǒng)進(jìn)行移植。通過RS232串口把STM32開發(fā)板連接在PC機(jī)上,進(jìn)行編寫翻譯后的目標(biāo)文件用JFlash軟件,并使用Jlink下載到實(shí)驗(yàn)板中。最后,在確定實(shí)驗(yàn)板無誤的前提下再進(jìn)行下工欲善其事,必先利其器,在開始學(xué)習(xí)以及移第三,準(zhǔn)備實(shí)驗(yàn)所需的平臺(tái),這次我們將在STM32F407平臺(tái)上移植和測(cè)試下載的FreeRTOS代碼是一個(gè)自解壓的文件,解壓后包括的內(nèi)容比較豐FreeRTOS-Plus。FreeRTO在FreeRTOS目錄之下是FreeRTOS的內(nèi)核部分,打開FreeRTOS文件夾它在于FreeRTOS/Source目錄。在此目錄下還包含三個(gè)可以選擇的文件:本次移植將在IAR平臺(tái)上進(jìn)行,首先要?jiǎng)?chuàng)建一個(gè)IAR項(xiàng)目。在IAR下創(chuàng)建一個(gè)名為pfreertos的項(xiàng)目,并添加Application、Drivers和Middlewares幾個(gè)組。并在Application下添加EWARM與User組;在Drivers下添加CMSIS與STM32F4xx_HAL_Driver組;在Middlewares下增加FreeRTOS組,具體情況如其次,把相關(guān)的FreeRTOS源碼拷貝到該項(xiàng)目的目錄下面。\FreeRTOSv10.0.1\FreeRTOS\Source目錄下的源文件和include文件夾復(fù)制粘貼到新建項(xiàng)目的文件夾中。如圖4-3所示:圖4-3下的三個(gè)文件也復(fù)制粘貼到新建項(xiàng)目的文件夾。如圖4-4所示:文件復(fù)制到新建項(xiàng)目的文件夾。如圖4-5所示:錄下的FreeRTOSConfig.h文件復(fù)制粘貼到新建項(xiàng)目的文件夾中。如圖4-6所然后,同時(shí)把這下文件添加到我們前面建立的pfreertos項(xiàng)目中,其他的例如ST驅(qū)動(dòng)及用戶應(yīng)用也添加到項(xiàng)目中。并將相關(guān)的引用目錄添加到項(xiàng)目屬性中。如圖4-7所示:在FreeRTOSConfig.h配置文件中,有如下3個(gè)宏定義:#definevPortSVCHandlerSVC_Handler#definexPortPendSVHandlerPendSV_Handler#definexPortSysTickHandlerSysTick_Handler需要在stm32f4xx_it.c文件里,把對(duì)應(yīng)的三個(gè)空的函數(shù)定義并注釋掉。到目前為止,其實(shí)編譯就已經(jīng)不會(huì)有錯(cuò)誤的地方,移植工作也已經(jīng)完成了。不可否認(rèn),在有些其他的基礎(chǔ)庫也需要使用SysTick時(shí),我們也可以在中斷中調(diào)用xPortSysTickHandler)函數(shù)來實(shí)現(xiàn)我們的需求。在基于操作系統(tǒng)平臺(tái)下的Lwip移植的完成就需要解決兩大部分接口的實(shí)現(xiàn)。其中一個(gè)是Lwip在操作系統(tǒng)模擬層接口部分的實(shí)現(xiàn);另一個(gè)則是硬件驅(qū)動(dòng)層的實(shí)現(xiàn)。全部的移植框架結(jié)構(gòu)如下圖5-1所示。5.2操作系統(tǒng)模擬層的實(shí)現(xiàn)在arch文件夾中有操作系統(tǒng)模擬層的代碼,而修改這個(gè)目錄的文件是對(duì)其類型、數(shù)據(jù)結(jié)構(gòu)和字節(jié)對(duì)齊的相關(guān)宏,與之相關(guān)的代碼如圖5-2所示:與此同時(shí)由于C語言定義的結(jié)構(gòu)體是4字相對(duì)齊的,然而Lwip是在對(duì)以免各數(shù)據(jù)字段在結(jié)構(gòu)體中的偏移量發(fā)生不能夠預(yù)知的改變,代碼如圖5-3所在此基礎(chǔ)上把處理器的大小端模式定義為小端存儲(chǔ)模式,也是協(xié)議棧內(nèi)核所必須的。所謂的小端存儲(chǔ)模式就是指數(shù)據(jù)的高字節(jié)保存在內(nèi)存的高地址中,其中在數(shù)據(jù)的低字節(jié)保存在內(nèi)存的低地址中,這種儲(chǔ)存模式把地址的高低和數(shù)據(jù)位權(quán)有效地合并起來了,并且權(quán)值高的部分為高地址部分,而權(quán)值低的部分為低地址部分,與我們的邏輯方法相同。具體代碼如圖5-4所示:5.2.3文件sys_arch.h的修改Lwip中使用信號(hào)量來實(shí)現(xiàn)任務(wù)之間的相互排斥與同步使用,應(yīng)用郵箱來實(shí)現(xiàn)任務(wù)間數(shù)據(jù)的傳送,仍需要實(shí)現(xiàn)多線程,因此就要把操作系統(tǒng)相關(guān)的信號(hào)量、郵箱和多線程的數(shù)據(jù)結(jié)構(gòu)和宏預(yù)先進(jìn)行與其相關(guān)的定義。由于操作系統(tǒng)中提供了信號(hào)量和消息隊(duì)列的通信方式,而且也沒有提供郵箱,所以這里依據(jù)消息隊(duì)列來創(chuàng)設(shè)郵箱,用任務(wù)來替代線程,再封裝成相應(yīng)形式供Lwip調(diào)試使用,與其相關(guān)的代碼如圖5-5所示:首先,郵箱的實(shí)現(xiàn)。郵箱是用于來對(duì)消息進(jìn)行傳遞的,因此就需要保存儲(chǔ)備信息,并且大部分的情況下都是用結(jié)構(gòu)體來保存儲(chǔ)備的,然后以鏈表的形式把可能相同信息的多條的結(jié)構(gòu)鏈接起來。大多數(shù)操作系統(tǒng)模擬層都是支持郵箱機(jī)制的,在使用時(shí)可以直接調(diào)試使用,但是這次移植使用的操作系統(tǒng)為FreeRTOS,它本身其實(shí)并不支持郵箱機(jī)制,所以擬郵箱功能從而支持消息的投放傳遞,傳遞到郵箱中內(nèi)容的指針。實(shí)現(xiàn)程序如圖5-6所示:再次,是多線程創(chuàng)建函數(shù)。在Lwip網(wǎng)絡(luò)協(xié)議中,多線程的運(yùn)行方式是通過操作系統(tǒng)模擬層中的多線程創(chuàng)建函數(shù)來實(shí)現(xiàn)的,而FreeRTOS操作系統(tǒng)的創(chuàng)建新任務(wù)的函數(shù)xTaskCreat來實(shí)現(xiàn)具體程序如圖5-7所最后,是臨界保護(hù)函數(shù)。在資源互斥的時(shí)候,協(xié)議棧在對(duì)資源訪問操作的過程中,會(huì)產(chǎn)生新的數(shù)據(jù)覆蓋原來的數(shù)據(jù),因此需要體是調(diào)用操作系統(tǒng)FreeRTOS中的開關(guān)中斷,代碼如圖5-8所示:硬件系統(tǒng)使用的網(wǎng)卡芯片取決了底層驅(qū)動(dòng)程序能否被完成上述步驟之后移植工作完成,開始實(shí)驗(yàn)測(cè)試第一,由STM32單片機(jī)向天通模塊發(fā)送AT指令,打印結(jié)果如圖6-1所ATCMDSE圖6-1發(fā)送AT指令第二,AT指令發(fā)送成功,反饋也為正常后。由STM32控制天通模塊進(jìn)行PPP撥號(hào)入網(wǎng),打印結(jié)果如圖6-2所示:pppphasechanged[1]:phase=0pPPconnect[1]:holdoffpppossendconfig[sentLCPConfReqid=0x1<asyncmapOx0><magicOxb01a3720ppposwrite[1]:len=ppp_start[1]:finishsent[LCPConfReqid=0x1<asyncmap0x0><mappposwrite[1]:len=tcpipthread:PACKErcvdLLCPConfAckid=0x1<asyncmap0x0><magicOxb01a3720><pcomp>netifsetmtu[1]:mtu=1500pppossendconfig[1]:out_appposrecvcontig[1]:in_accm=0pppphasechanged[1]:[PAPAuthReqppp第三,若PPP撥號(hào)入網(wǎng)成功后,將會(huì)獲取到天通衛(wèi)星分配的IP地址,打印結(jié)果如圖6-3所示:IPCPConfAckid=0x3<addrpppos_netif_output[1]:proto=0x21,pppphase第四,通過天通模塊發(fā)送溫度、濕度數(shù)據(jù)(溫度、濕度數(shù)據(jù)為模擬量)。若發(fā)送成功,打印發(fā)送的溫度、濕度數(shù)據(jù),打印結(jié)果如圖6-4所示:PpP_input1:ipPpP_input1:ipinpbufIen=46pppos_netif_output[1]:proto=0x21,len=40pppos_netif_output[1]:proto=0x21,lsendtotianton:temperature:35humiditytcpip_thread:PACKET_output[1]:proto=0x21,len=40_output[i]:proto=0x21,len=71nput[1]:ipinpbuflen=71temperature:35humidity:43%pppos_netif_output[1]:proto=0x21,lsendtotianton:temperature:34.6humidity:45%第五,利用現(xiàn)有的公共IP平臺(tái)搭建TCP服務(wù)器,由之前天通衛(wèi)星分配的IP地址向公共IP發(fā)送溫度、濕度數(shù)據(jù),并打印數(shù)據(jù)結(jié)果,如圖6-5所示:創(chuàng)建tcp服務(wù)器成功4連接成功連接已經(jīng)關(guān)閉:4[pcq@iZwz9chr22v1g7oqj3e01kZ由于MSM01A天通模塊具有休眠功能,以此降低功耗。當(dāng)判斷進(jìn)入休眠狀態(tài)后,處理器會(huì)置高B2A_SLEEP信號(hào),并使能A2B_WAKEUP中斷。處于休刻處于喚醒狀態(tài),也就是置低B2A_SLEEP信號(hào)。PPP撥號(hào)過程中,若沒發(fā)生中斷,直至獲取到天通衛(wèi)星分配的IP地址,證明PPP撥號(hào)入網(wǎng)成功,反之,若發(fā)生中斷,未獲取到IP地址,證明PPP撥號(hào)失7.總結(jié)與展望本論文以STM32開發(fā)板作為窄帶數(shù)據(jù)傳輸終端的主控芯片,利用終端上的天通模塊MSM01A通過天通一號(hào)衛(wèi)星將數(shù)據(jù)傳輸?shù)桨痘W(wǎng)絡(luò),最終進(jìn)入公網(wǎng)實(shí)第一、完成了基于天通一號(hào)的窄帶數(shù)據(jù)傳輸終端的紹了目前天通一號(hào)衛(wèi)星的相關(guān)技術(shù)與參數(shù),并選擇采用天通MSM01A模塊來對(duì)接衛(wèi)星網(wǎng)絡(luò)的方案。實(shí)現(xiàn)船舶與岸端的數(shù)據(jù)傳輸。第二、分析了基于天通一號(hào)的窄帶數(shù)據(jù)傳輸終端的主要功能模塊。介紹了STM32開發(fā)板、MSM01A天通通信模塊。第三、通過對(duì)FreeRTOS實(shí)時(shí)操作系統(tǒng)的學(xué)習(xí),我對(duì)FreeRTOS的內(nèi)核和工作原理有了更深層次的了解,并且完成了FreeRTOS實(shí)時(shí)操作系統(tǒng)跨硬件平臺(tái)的移植。在這樣的基礎(chǔ)上,結(jié)合分析了嵌入式網(wǎng)絡(luò)協(xié)議Lwip的協(xié)議棧,同時(shí)也實(shí)現(xiàn)了對(duì)FreeRTOS平臺(tái)下的移植完成。第四、完成了實(shí)驗(yàn)設(shè)計(jì)和驗(yàn)證的測(cè)試,其中測(cè)試包含了FreeRTOS操作系統(tǒng)移植測(cè)試、移植前的硬件平臺(tái)測(cè)試與Lwip協(xié)議的移植測(cè)試三種測(cè)試。7.2展望本論文設(shè)計(jì)的是一套基于天通一號(hào)的窄帶數(shù)據(jù)傳輸終端。相比傳統(tǒng)的海洋數(shù)據(jù)傳輸終端,除了實(shí)現(xiàn)基本的海洋環(huán)境數(shù)據(jù)傳輸,還結(jié)合我國移動(dòng)通信衛(wèi)星——天通一號(hào)實(shí)現(xiàn)了遠(yuǎn)程的數(shù)據(jù)實(shí)時(shí)顯示。但由于衛(wèi)星信號(hào)屬于高頻短波遠(yuǎn)距離信號(hào),受環(huán)境等影響較大,在不同的環(huán)境下測(cè)試到的數(shù)據(jù)可能有所不同,從而難以保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和及時(shí)性。目前,我國正在發(fā)展的“鴻云”

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論