FPGA與GPS-OEM板的串行通訊系統(tǒng)設(shè)計(jì)
3.2數(shù)據(jù)校驗(yàn)和存儲設(shè)計(jì)
要正確讀取OEM板的輸出語句,首先是判斷語句類型,其次是存放數(shù)據(jù),然后再確定語句的結(jié)束標(biāo)志。本例中將接收的數(shù)據(jù)存放在FPGA內(nèi)部設(shè)定的RAM中,而對時(shí)間,位置等信息的提取和處理則在其它部分完成。
數(shù)據(jù)校驗(yàn)?zāi)K由FIFO的滿信號啟動(dòng)。當(dāng)檢測到滿信號有效時(shí)。校驗(yàn)?zāi)K連續(xù)的讀取數(shù)據(jù)并進(jìn)行處理。當(dāng)檢測到起始標(biāo)志$后,即進(jìn)入數(shù)據(jù)讀取和檢測。輸出數(shù)據(jù)是以語句的形式出現(xiàn)的,每條語句代表一種數(shù)據(jù),每種數(shù)據(jù)都有它自己的識別碼,所以,要根據(jù)收到的語句識別碼來判斷該語句是否為所需要的內(nèi)容(如GPRMC中,GP為識別符,RMC為語句名)。
根據(jù)NMEA-0183通信標(biāo)準(zhǔn)格式的內(nèi)容,可對所接收到的數(shù)據(jù)進(jìn)行檢驗(yàn)。即對接收到的信息逐字節(jié)異或。當(dāng)接收到*時(shí),比較下一字符hh與實(shí)際異或值是否相等。若相等,即所接收的數(shù)據(jù)正確;若不等,則所接收數(shù)據(jù)無效,系統(tǒng)隨之復(fù)位存儲設(shè)備,并等待檢測下一組數(shù)據(jù)。當(dāng)檢測到結(jié)束符CR>LF>時(shí),標(biāo)志數(shù)據(jù)讀取結(jié)束,系統(tǒng)向FIFO發(fā)出結(jié)束標(biāo)志,并等待下一次數(shù)據(jù)檢測。其系統(tǒng)校驗(yàn)流程圖如圖4所示。
4 結(jié)束語
本文結(jié)合PFGA和GPS-25型OEM板的硬件特點(diǎn),分析了FPGA和OEM板的串行通訊問題,同時(shí)重點(diǎn)分析了讀取GPS定位信息的設(shè)計(jì)問題。
評論