開篇
在基于lwip協定棧搭建好tcp或udp通訊後,我們就可以開始用闆載網口與雷達通信了,目前先将接收到的雷達資料在udp接收回調函數中進行轉存。
一、雷達協定介紹
雷達作為udp伺服器端,發送廣播信号到另一端,當平台設定好同一網段IP,并開啟廣播接收後,嵌入式端就能接收到udp廣播資料報。其中,所使用的雷射雷達資料包如下所示:
由于先前設定了雷射雷達的掃描頻率為20Hz,且雷達掃描的角度為270°,雷達開發者将其分為8個塊,每個塊33.75°,在掃描頻率20Hz情況下,每個塊有144個點,且各個點分布均勻(也就是說每個點相差角度約為0.234°):
二、雷達資料解析
根據上述雷達udp資料包的描述,編寫出udp回調函數中的資料解析函數:
udp資料包中用到的是CRC16校驗(CRC16_CCITT_FALSE),也即初始值為0xFFFF,異或值為0x0000,多項式poly為0x1021:
由于雷達是從block0~block7的順序不斷循環發送出來的,是以當接收到block7字段的資料包時,将frameOK置1,作為标志位告知系統雷達的一次8塊掃描已經完成。
三、解析函數驗證
雷達的分辨率是2毫米,在接收到雷達一次8塊掃描點後,通過序列槽将資料轉換出來,驗證結果如下: