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