DIY之樂:基于PIC32的以太網音箱設計案例,硬件框圖、器件選型、數據結構、軟件流程
4軟件設計
本系統的整個設計包括以太網音響終端設備軟件設計和PC服務器軟件設計。以太網音響終端設備實現了UDP數據通信,MP3軟解碼和DAC 驅動。而PC服務器軟件實現了對MP3文件的初步分析,分析提取MP3幀;通過TCP/IP的socket,以MP3幀為最小單位,按每秒26耗描勻速發送給以太網音響終端設備。
4.1PC服務器軟件設計
4.1.1通信數據結構設計
PC服務器利用非連接UDP和以太網音響終端設備通信,因此在應用上傳輸的數據大小不宜超過數據鏈路層上的最大數據單元。因為,如果超過數據鏈路層的上最大數據單元,會造成數據在數據鏈路層上被拆分,而且由于數據在UDP上的不可靠性,會導致由于整批數據中的一個分段丟失導致了整個數據錯誤,因此應用上傳輸的最大數據大小應小于數據鏈路層上的最大數據單元。
上面就是發送的數據結構。usDataHeader是數據包頭部分,其高4為該數據的類型:0x1表示該數據的為MP3幀,0x03表示該數據為MP3最后一幀;第27位到第20位為數據序號;第19位到第16位為保留字段;低16位為MP3幀數據大小。ucDataBuffer為MP3數據幀。
4.1.2應用程序界面設計
圖9展示了PC程序的主界面,其分別有服務器設置,設置IP地址、端口和音頻文件。音頻屬性中顯示了選中音頻的相關信息。以太網音響信息,會顯示終端設備的IP地址和它的端口號。播放控制和現實中現實了播放間隔和相應的數據包長度,并且可以控制是否發送數據和停止。
圖9 PC程序界面
4.1.3應用程序設計
PC服務器可以配置綁定本機網卡地址和端口號。然后選擇MP3音頻節目,等待以太網終端設備發起數據請求。當收到終端設備發來的連接請求時,將其IP地址和發送數據的端口號記錄下來,作為向終端設備發送數據的地址并將該信息現實到PC程序的界面上。
圖10PC服務器主程序
圖11PC服務器等待請求線程
圖12PC服務器發送數據定時器中斷
PC服務器在開啟時候會運行主界面程序(其流程圖如圖9所示)和接收終端設備請求線程(其流程圖如圖10所示)。當用戶播放數據之后,程序會運行定時器終端程序,定時發送MP3數據幀。
DIY機械鍵盤相關社區:機械鍵盤DIY
模擬信號相關文章:什么是模擬信號
數字通信相關文章:數字通信原理
評論