基于NIOSⅡ的GPS信息接收系統設計與實(shí)現
3.2 系統功能程序設計
在構建好NIOS處理器的基礎上,采用C語(yǔ)言編程將μC/OS實(shí)時(shí)操作系統移植到處理器中,并編寫(xiě)實(shí)現設計功能的程序,如接收CPS定位數據、GPS信息解碼、延時(shí)和LCD液晶顯示程序等。主程序及主要子程序流程圖如圖5所示。
本文中μC/OS操作系統的使用,即是建立若干個(gè)任務(wù),將實(shí)現功能的各程序函數放入各任務(wù)中,并分別對任務(wù)設置不同的優(yōu)先級,任務(wù)之間的通信是通過(guò)發(fā)送信號量實(shí)現。當任務(wù)創(chuàng )建完成之后,將操作權交給操作系統,由操作系統對各任務(wù)的執行順序進(jìn)行安排。μC/OS操作系統可以實(shí)現在一個(gè)任務(wù)掛起時(shí),馬上開(kāi)始執行另一個(gè)處于等待狀態(tài)的優(yōu)先級最高的任務(wù),從而提高系統的實(shí)時(shí)性。任務(wù)的執行流程如圖6所示。本文引用地址:http://dyxdggzs.com/article/189581.htm
設計中,出于對系統功能的考慮,在μC/OS操作系統中設置這樣四個(gè)任務(wù)和一個(gè)按鍵中斷:串口接收GPS定位數據,GPS定位數據解碼,液晶顯示經(jīng)緯度和速度信息,液晶顯示航向、時(shí)間、日期和設計者信以及按鍵中斷。開(kāi)機首先GPS模塊初始化,初始化結束串口接收完第一幀完整的數據時(shí),開(kāi)始對定位數據進(jìn)行解碼;當解碼完成后,把解碼出的定位信息顯示在液晶顯示屏上并開(kāi)始接收下一幀定位數據;通過(guò)五向按鍵的上下?lián)軇?dòng)可以實(shí)現定位信息在液晶屏幕上的交替顯示。
4 系統測試
檢查完電路連接無(wú)誤后,首先在QuartusⅡ軟件中建立工程,然后在SoPC Builder中構建好的NIOSⅡ處理器進(jìn)行編譯,編譯完成后回到QuartusⅡ界面,將編寫(xiě)好的對FPGA內部電路邏輯進(jìn)行描述的Verilog語(yǔ)言程序寫(xiě)入到工程里,對其進(jìn)行編譯,結果如圖7所示。
從圖中可以看出該設計占用的FPGA內部資源。然后將編譯生成的FPGA配置文件下載到FPGA片外的EPCS4芯片中,至此,FPGA配置完成,下面開(kāi)始對軟件程序的測試。本設計的軟件調試在NIOS IDE軟件環(huán)境下完成。首先,在NIOS IDE軟件環(huán)境下新建一個(gè)工程,在選擇工程模板時(shí)可以選擇Hello MicroC/OS-Ⅱ,這樣在工程建立之時(shí),μC/OS操作系統就已經(jīng)被嵌入使用,接下來(lái)在NIOS IDE工程內輸入用C語(yǔ)言編寫(xiě)的功能程序,對工程進(jìn)行編譯,驗證程序的正確性。
在分別完成硬件電路和軟件程序測試的基礎上,將FPGA的硬件配置文件下載到電路中的片外EPCS4芯片中,將軟件程序下載到已經(jīng)構建好的NIOSⅡ處理器中,然后進(jìn)行總體測試。
連接上GPS天線(xiàn),程序下載完成并等待一段時(shí)間后,天線(xiàn)收到定位數據,系統開(kāi)始解碼并顯示定位信息,這時(shí)液晶屏上顯示第一屏定位信息,即經(jīng)緯度和速度信息,如圖8所示。此時(shí),若按下五向按鍵的向下鍵,液晶顯示信息翻屏,顯示第二屏定位信息,包括航向、時(shí)間、
日期和設計者信息。
將五向按鍵分別向上和向下?lián)軇?dòng),液晶屏顯示信息可以在第一屏和第二屏之間進(jìn)行切換??梢?jiàn)系統設計正確,能夠提供正確的實(shí)時(shí)位置和時(shí)間信息。
5 結語(yǔ)
本文基于GPS定位原理及FPCA設計了一種基于NIOS處理器的CPS信息接收系統,設計所用到的NlOSⅡ處理器專(zhuān)為嵌入式系統設計,μC/OS操作系統具有良好的實(shí)時(shí)性,有助于提高定位信息的實(shí)時(shí)顯示,以保證其正確性。系統整體設計思想是首先將NIOSⅡ處理器嵌入到FPGA內,FPGA內部電路結構用Verilog硬件語(yǔ)言描述,然后把μC/OS操作系統移植到處理器內部,通過(guò)C語(yǔ)言編程完成系統功能。經(jīng)實(shí)際測試驗證,本文所設計的硬件電路及C語(yǔ)言功能程序完全能夠達到要求,并且能夠實(shí)現GPS信息接收與顯示的功能,實(shí)時(shí)地為使用者提供精確的經(jīng)緯度、速度、時(shí)間和航向等定位信息。
評論