李 基,邵瓊玲,王盛軍
(航天工程大學(xué) 航天裝備系,北京 101416)
基于STM32與串口服務(wù)器的IP語音通信系統(tǒng)設(shè)計(jì)
李 基,邵瓊玲,王盛軍
(航天工程大學(xué) 航天裝備系,北京 101416)
針對(duì)模擬訓(xùn)練系統(tǒng)中語音通信的應(yīng)用需求,提出了一種基于TCP/IP協(xié)議在局域網(wǎng)內(nèi)進(jìn)行IP語音通信的實(shí)現(xiàn)方法;分析了該語音通信系統(tǒng)的組成結(jié)構(gòu)和工作原理,設(shè)計(jì)了以微處理器STM32F103ZET6為核心、以語音編解碼芯片VS1053B為驅(qū)動(dòng)的語音控制電路,SD卡連接電路和電源電路;移植了UCOSⅢ嵌入式實(shí)時(shí)操作系統(tǒng)增強(qiáng)控制系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性,采用FatFs文件系統(tǒng)管理SD卡存儲(chǔ)設(shè)備;利用串口服務(wù)器實(shí)現(xiàn)串口數(shù)據(jù)與以太網(wǎng)數(shù)據(jù)的快速交換,完成模擬訓(xùn)練系統(tǒng)局域網(wǎng)的搭建,實(shí)現(xiàn)基于TCP/IP協(xié)議的穩(wěn)定高效的IP語音通信。采用.NET Framework的Socket模塊和Winform模塊設(shè)計(jì)了上位機(jī)模擬網(wǎng)控軟件;測(cè)試結(jié)果表明,系統(tǒng)穩(wěn)定可靠、擴(kuò)展性強(qiáng),語音通信質(zhì)量滿足模擬訓(xùn)練使用要求。
IP語音通信;STM32;串口服務(wù)器;UCOSⅢ;VS1053B;.NET Framework平臺(tái)
隨著科學(xué)技術(shù)的快速發(fā)展,軍事裝備更新?lián)Q代步伐加快。新型裝備信息化、集成化程度更高,在效率和性能方面較傳統(tǒng)設(shè)備更有優(yōu)勢(shì);但是高科技裝備往往也會(huì)帶來更大的操作復(fù)雜度,對(duì)操作者的要求更高,使得裝備訓(xùn)練周期更長,同時(shí)客觀條件上存在保障成本高、資源有限(如通信衛(wèi)星)等問題,這些問題阻礙了實(shí)裝訓(xùn)練的廣泛開展,為解決這一突出矛盾,各種模擬訓(xùn)練系統(tǒng)應(yīng)運(yùn)而生,模擬訓(xùn)練系統(tǒng)能夠模擬實(shí)裝設(shè)備的主要功能、提供與實(shí)裝設(shè)備相同的操作,能夠?qū)崿F(xiàn)良好的訓(xùn)練效果。語音通信是許多模擬訓(xùn)練系統(tǒng)的重要組成部分。在現(xiàn)有的模擬訓(xùn)練系統(tǒng)中,基于藍(lán)牙技術(shù)的語音通信[1]、基于無線局域網(wǎng)的語音通信[2]能夠滿足短距離的可靠通信需求,在通信距離上存在較大限制;基于CAN總線的語音通信距離較遠(yuǎn)[3],但是在遠(yuǎn)距離通信的數(shù)據(jù)量方面存在較大約束。本文針對(duì)模擬訓(xùn)練系統(tǒng)遠(yuǎn)距離語音通信的需求,在分析了幾種語音傳輸技術(shù)特點(diǎn)的基礎(chǔ)上,設(shè)計(jì)了基于STM32和串口服務(wù)器的IP語音通信系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了模擬訓(xùn)練系統(tǒng)中各用戶之間進(jìn)行單雙工通信的功能,具有較強(qiáng)的可靠性和擴(kuò)展性,系統(tǒng)設(shè)計(jì)特點(diǎn)使得其易于集成在多種基于以太網(wǎng)的模擬訓(xùn)練系統(tǒng)上,共同實(shí)現(xiàn)裝備模擬訓(xùn)練。
該IP語音通信系統(tǒng)主要由服務(wù)器模塊、網(wǎng)絡(luò)模塊和用戶模塊三部分組成。系統(tǒng)組成結(jié)構(gòu)如圖1所示,服務(wù)器模塊是整個(gè)通信系統(tǒng)的控制核心,主要由控制計(jì)算機(jī)構(gòu)成,該計(jì)算機(jī)上運(yùn)行著網(wǎng)控軟件,實(shí)現(xiàn)對(duì)用戶申請(qǐng)入網(wǎng)的應(yīng)答和數(shù)據(jù)的收發(fā),模擬網(wǎng)控軟件基于C#語言實(shí)現(xiàn);網(wǎng)絡(luò)模塊提供了IP語音通信的物理通道,主要包括語音網(wǎng)關(guān)、串口服務(wù)器以及由他們組成的局域網(wǎng)鏈路,其中語音網(wǎng)關(guān)由路由器模擬,與串口服務(wù)器共同作用實(shí)現(xiàn)數(shù)字語言和IP語音的轉(zhuǎn)換;用戶模塊指IP語音終端,該終端的設(shè)計(jì)以微處理器STM32F103ZET6為硬件核心、以語音編解碼芯片VS1053B為語音驅(qū)動(dòng)芯片,軟件平臺(tái)采用嵌入式實(shí)時(shí)操作系統(tǒng)UCOSⅢ,通過設(shè)計(jì)語音發(fā)送與接收任務(wù),實(shí)現(xiàn)語音實(shí)時(shí)接收與播放。
圖1 系統(tǒng)組成結(jié)構(gòu)圖
IP語音通信系統(tǒng)的工作原理如圖2所示。語音信號(hào)在系統(tǒng)中以模擬信號(hào)、數(shù)字信號(hào)和IP數(shù)據(jù)包三種形式存在。
圖2 系統(tǒng)工作原理
圖3 VS1053B接口電路
MIC將聲信號(hào)轉(zhuǎn)化為模擬電信號(hào);VS1053B將模擬信號(hào)進(jìn)行A/D、D/A變換以及編解碼,由于大部分語音頻率低于4 kHz,根據(jù)奈奎斯特采樣定理可將VS1053B的采樣頻率定為8 kHz,量化位數(shù)為16bit;串口服務(wù)器基于TCP/IP協(xié)議實(shí)現(xiàn)數(shù)字信號(hào)與IP數(shù)據(jù)包的轉(zhuǎn)換,其中IP數(shù)據(jù)包在局域網(wǎng)絡(luò)中傳輸,數(shù)字信號(hào)在IP語音終端中傳輸。
其中IP語言終端包含語音發(fā)送和接收兩個(gè)任務(wù)。當(dāng)手持終端處于語音發(fā)送狀態(tài)時(shí),VS1053B以8 kHz的采樣率實(shí)時(shí)采集音頻信號(hào),并編碼成wav格式的音頻數(shù)據(jù),STM32F103ZET6通過串口將數(shù)據(jù)發(fā)送給串口服務(wù)器。當(dāng)手持終端處于語音接收狀態(tài)時(shí),與其相連接的串口服務(wù)器先將接收到的TCP/IP數(shù)據(jù)包解析為串口數(shù)據(jù),然后發(fā)送給接收終端,終端通過串口接收音頻數(shù)據(jù),送入VS1053B進(jìn)行解碼并播放。
IP語音終端采用意法半導(dǎo)體公司生產(chǎn)的32位增強(qiáng)型微處理器STM32F103ZET6作為控制核心,該處理器采用ARM公司的Cortex-M3內(nèi)核,CPU最高速度可達(dá)72 MHz,內(nèi)置看2個(gè)看門狗和1個(gè)滴答定時(shí)器[4],其中滴答定時(shí)器的中斷作為UCOSⅢ系統(tǒng)的時(shí)基。該芯片的優(yōu)勢(shì)是片上集成了豐富的外設(shè)接口,這些豐富的外設(shè)接口極大地提高了硬件電路設(shè)計(jì)效率。其中包括3路串行外設(shè)接口(SPI1~SPI3)和5路異步串行通信口(USART1~USART5)。在本設(shè)計(jì)中,分別利用SPI1和USART1與VS1053和串口服務(wù)器進(jìn)行數(shù)據(jù)通信。
VS1053B是荷蘭VLSI公司研制的一款高性能解碼芯片,其內(nèi)部包含一個(gè)高性能低功耗DSP處理器核VS_DSP4,可實(shí)現(xiàn)對(duì)MP3/OGG/WMA/FLAC/WAV等音頻格式的編解碼。同時(shí)芯片內(nèi)部還自帶一個(gè)可變采樣率的立體聲ADC和一個(gè)高性能立體聲DAC[5-6],具有良好的語音錄制與播放效果。
VS1053B具有8個(gè)通用I/O口,通過SPI與微處理器STM32F103ZET6進(jìn)行數(shù)據(jù)通信,VS1053B的時(shí)鐘線引腳SCLK(28腳)、設(shè)備數(shù)據(jù)輸出線引腳SO(30腳)、設(shè)備數(shù)據(jù)輸入線引腳SI(29腳)引腳分別與單片機(jī)的SPI1_SCK(PA5)、SPI1_MISO(PA6)、SPI1_MOSI(PA7)引腳相連,VS1053B傳輸數(shù)據(jù)和命令數(shù)據(jù)分別使用SDI模式和SCI模式。VS1053B的XREST(3腳)是復(fù)位信號(hào)線且低電平有效,與單片機(jī)的PE2相連;DREQ(8腳)是數(shù)據(jù)請(qǐng)求信號(hào)線,與單片機(jī)PC13相連;XDCS(13腳)為VS1053B數(shù)據(jù)接口開關(guān),與單片機(jī)PF6相連;XCS(23腳)控制著SCL寄存器的讀寫操作,與單片機(jī)PF7相連。VS1053B外接12.288MHz的晶振,通過1、2腳接MIC輸入,46腳接HT6872功放IN+引腳,由功放IC的OUT+、OUT-引腳驅(qū)動(dòng)2W喇叭。VS1053B的電路連接如圖3所示。
SD存儲(chǔ)容量大,支持SPI/SDIO驅(qū)動(dòng),比較適合作為語音數(shù)據(jù)的存儲(chǔ)器。STM32F103ZET6自帶標(biāo)準(zhǔn)的SDIO接口驅(qū)動(dòng),最高通信速度可達(dá)24 MHz。本設(shè)計(jì)中利用STM32F103ZET6的SDIO接口與SD卡進(jìn)行數(shù)據(jù)通信。如圖4所示,SD卡槽的1、2、5、7、8、9引腳分別與STM32F103ZET6的SDIO_D3(PC11)、SDIO_CMD(PD2)、SDIO_SCK(PC12)、SDIO_D0(PC8)、SDIO_D1(PC9)、SDIO_D2(PC10)相連。
圖4 SD卡接口電路
AMS1117是一個(gè)低漏失三端線性穩(wěn)壓器,具有良好的噪聲抑制能力,片內(nèi)集成過熱保護(hù)和過流保護(hù)模塊,只有輸入輸出和接地三個(gè)引腳,電路連接簡單[7]。故分別采用AMS1117-3.3和AMS1117-1.8分別將5.0 V電壓轉(zhuǎn)換為3.3 V和1.8 V,電路連接如圖5所示。
圖5 電源電路
UCOSⅢ是一個(gè)可裁剪、可剝奪型的多任務(wù)內(nèi)核,沒有任務(wù)數(shù)目的限制,提供了所有現(xiàn)代實(shí)時(shí)內(nèi)核所需要的功能,包括資源管理、同步、任務(wù)通信等。UCOSⅢ具有源碼開放、可裁剪、移植方便、關(guān)中斷時(shí)間短、運(yùn)行效率高等特點(diǎn),比較適合小型嵌入式設(shè)備使用[8]。手持終端STM32F103ZET6移植了UCOSⅢ3.03版本源碼,針對(duì)具體STM32處理器需要修改bsp.c、bsp.h、os_cpu_a.asm、os_cpu_c.c、os_cfg_app.h 5個(gè)文件,在此基礎(chǔ)上便可以設(shè)計(jì)語音發(fā)送和接收任務(wù)。
STM32F103的滴答計(jì)時(shí)器(Systick)是一個(gè)24位倒計(jì)數(shù)定時(shí)器,數(shù)值減到0時(shí)便產(chǎn)生一個(gè)異常請(qǐng)求,然后自動(dòng)重裝初值,繼續(xù)循環(huán)遞減。本設(shè)計(jì)中系統(tǒng)時(shí)鐘節(jié)拍通過單片機(jī)的Systick中斷產(chǎn)生的,在Systick中斷里處理系統(tǒng)時(shí)鐘服務(wù)程序,Systick中斷服務(wù)函數(shù)如下:
voidSysTick_Handler(void)
{
OSIntEnter(); //進(jìn)入中斷
OSTimeTick();//處理系統(tǒng)時(shí)鐘服務(wù)程序
OSIntExit();//觸發(fā)任務(wù)切換
}
其中OSTimeTick()函數(shù)必須在時(shí)鐘節(jié)拍中斷服務(wù)程序中調(diào)用,用來更新任務(wù)的延時(shí)和等待超時(shí),檢查每個(gè)任務(wù)控制塊中OSTCBDly-1后是否為0,從而決定是否將任務(wù)從掛起態(tài)改為就緒態(tài)。
為實(shí)現(xiàn)存儲(chǔ)設(shè)備SD卡的高效管理,需要移植一種文件管理系統(tǒng)。FatFs是一種開源的FAT文件系統(tǒng)模塊,支持SD/MMC卡、CF卡、硬盤、NAND Flash的讀寫,具有良好的硬件平臺(tái)獨(dú)立性,且支持RTOS[9]。所以本設(shè)計(jì)移植FatFs R0.11版本管理SD卡,實(shí)現(xiàn)語音數(shù)據(jù)的存取。
移植FatFs文件系統(tǒng)的過程中,需要修改ffconf.h和diskio.c兩個(gè)文件的內(nèi)容。ffconf.h文件里包含了FatFs的所有配置項(xiàng),可根據(jù)需要選擇;diskio.c中包含了底層驅(qū)動(dòng)函數(shù),針對(duì)STM32F103ZET6處理器需要編寫磁盤初始化函數(shù)disk_initialize()、磁盤狀態(tài)獲取函數(shù)disk_status()、扇區(qū)讀取函數(shù)disk_read()、寫扇區(qū)函數(shù)disk_write()、磁盤參數(shù)獲取函數(shù)disk_ioctl()、時(shí)間獲取函數(shù)get_fattime()6個(gè)接口函數(shù)。
根據(jù)語音通信功能的特點(diǎn),將此功能劃分為語音發(fā)送和語音接收2個(gè)模塊,即在IP語音終端程序中實(shí)現(xiàn)語音發(fā)送和語音接收2個(gè)任務(wù)函數(shù)(任務(wù)A和任務(wù)B)。程序設(shè)計(jì)總體流程圖如圖6所示,首先初始化STM32F103ZET6的時(shí)鐘系統(tǒng)、外設(shè)接口、VS1053B模塊以及UCOSⅢ系統(tǒng);UCOSⅢ系統(tǒng)要求在開啟系統(tǒng)以前必須存在一個(gè)已經(jīng)創(chuàng)建完成的任務(wù),所以初始化以后創(chuàng)建開始任務(wù),而后開啟UCOSⅢ系統(tǒng);在開始任務(wù)的任務(wù)函數(shù)里創(chuàng)建了語音發(fā)送任務(wù)A和語音接收任務(wù)B,任務(wù)創(chuàng)建完成以后,由于開始任務(wù)已不再需要,所以掛起開始任務(wù);最后UCOSⅢ系統(tǒng)執(zhí)行任務(wù)調(diào)度。
圖6 程序設(shè)計(jì)流程圖
3.3.1 語音發(fā)送任務(wù)
語音發(fā)送任務(wù)函數(shù)流程如圖7所示,在死循環(huán)任務(wù)中首先檢測(cè)按鍵是否按下,如果按鍵按下則判斷任務(wù)調(diào)度器是否關(guān)閉以及錄音標(biāo)志位是否置位,根據(jù)條件執(zhí)行相應(yīng)操作,從而確保在按鍵按下時(shí)調(diào)度器處于關(guān)閉狀態(tài)、錄音標(biāo)志位處于置位狀態(tài),然后開始采集語音數(shù)據(jù)。當(dāng)按鍵松開時(shí),通過檢測(cè)錄音標(biāo)志位是否置位來判斷是否存在語音數(shù)據(jù),如果錄音標(biāo)志位置位則將語音數(shù)據(jù)保存到SD卡中并通過串口發(fā)送出去,而后清除錄音標(biāo)志位并打開任務(wù)調(diào)度;如果錄音標(biāo)志位沒有置位,說明沒有語言數(shù)據(jù)需要發(fā)送,也說明任務(wù)調(diào)度器沒有關(guān)閉,則直接跳過以上函數(shù)直接進(jìn)入任務(wù)延時(shí)函數(shù),引發(fā)任務(wù)調(diào)度。
圖7 語音發(fā)送任務(wù)流程圖
3.3.2 語音接收任務(wù)
語音接收任務(wù)函數(shù)流程圖如圖8所示,在死循環(huán)任務(wù)中檢測(cè)串口數(shù)據(jù)寄存器非空標(biāo)志位是否置位,如果串口數(shù)據(jù)寄存器接收到數(shù)據(jù),則設(shè)置語言接收標(biāo)志位并讀取數(shù)據(jù),此時(shí)數(shù)據(jù)寄存器非空標(biāo)志位將被清除,接著判斷該數(shù)據(jù)是否為語音數(shù)據(jù)結(jié)束標(biāo)志,如果是結(jié)束標(biāo)志則清除語音接收標(biāo)志位,否則將跳過此步驟,直接將數(shù)據(jù)發(fā)送給VS1053B并通過HT6872驅(qū)動(dòng)喇叭輸出。若檢測(cè)到串口寄存器標(biāo)志位沒有置位,接著判斷語音接收標(biāo)志位是否置位,若語音接收標(biāo)志位置位,則說明正在進(jìn)行語音接收,則繼續(xù)判斷串口寄存器的標(biāo)志位;如語音接收標(biāo)志位沒有置位,說明沒有接收語音數(shù)據(jù)或者語音數(shù)據(jù)接收完畢,直接進(jìn)入任務(wù)延時(shí)函數(shù),引發(fā)任務(wù)調(diào)度。
圖8 語音接收任務(wù)流程圖
由于服務(wù)器模塊的PC終端與IP語音終端是基于TCP/IP協(xié)議的網(wǎng)口通信,TCP/IP協(xié)議層次結(jié)構(gòu)從上到下通常被分為網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層,其中傳輸層典型協(xié)議包括面向連接的TCP協(xié)議和無連接的UDP協(xié)議,基于語音數(shù)據(jù)傳輸準(zhǔn)確性、穩(wěn)定性的考慮,本設(shè)計(jì)選擇TCP協(xié)議??刂平K端PC機(jī)基于windows平臺(tái),選用Visual Studio 2015開發(fā)工具,采用C#語言,利用.NET Framework平臺(tái)的Socket(套接字)模塊設(shè)計(jì)網(wǎng)絡(luò)通信部分,利用Winform模塊設(shè)計(jì)軟件界面。
Socket模塊包含了許多TCP/IP網(wǎng)絡(luò)的API函數(shù),利用這些API函數(shù)可以快速方便開發(fā)服務(wù)器軟件。Winform模塊包含了許多界面常用控件,極大地提高了界面設(shè)計(jì)效率,本系統(tǒng)控制終端軟件界面如圖9所示。軟件界面包含系統(tǒng)設(shè)備、系統(tǒng)內(nèi)已連接設(shè)備工作狀態(tài)和設(shè)備參數(shù)3個(gè)部分,比較清晰地顯示出該系統(tǒng)中各個(gè)用戶的號(hào)碼、IP和通信狀態(tài)等主要信息,便于管理員的后臺(tái)操作與管理。
圖9 控制終端軟件界面
利用Winform進(jìn)行程序界面設(shè)計(jì)時(shí),不能在UI線程中處理數(shù)據(jù)收發(fā)等比較耗時(shí)的操作,否則會(huì)導(dǎo)致界面崩潰,可利用多線程來解決此問題。本設(shè)計(jì)中使用Winform模塊中BackgroundWorker類開啟一個(gè)后臺(tái)線程,在其DoWork事件處理函數(shù)中處理數(shù)據(jù)收發(fā)與處理等耗時(shí)操作,然后調(diào)用RunWorkerAsync()函數(shù)來啟動(dòng)DoWork事件,最終有效解決了界面死機(jī)問題。
串口服務(wù)器能夠?qū)崿F(xiàn)RJ45網(wǎng)口與RS232接口之間直接的數(shù)據(jù)透明傳輸,其內(nèi)部集成了嵌入式TCP/IP協(xié)議棧,通常支持TCP/UDP Server、TCP/UDP Client等多種工作模式,是不具備網(wǎng)絡(luò)接口的終端設(shè)備連接局域網(wǎng)或互聯(lián)網(wǎng)的理想選擇。本設(shè)計(jì)中網(wǎng)絡(luò)模塊串口服務(wù)器選取有人物聯(lián)網(wǎng)技術(shù)有限公司的USR-TCP232-302串口服務(wù)器,其內(nèi)部搭載ARM處理器,支持10/100Mbps自適應(yīng)傳輸。
以用戶A(IP語音終端A)與用戶B(IP語音終端B)通信為例,介紹串口服務(wù)器的配置方案。其中串口服務(wù)器A與IP終端A相連,串口服務(wù)器B與IP中斷B相連。連接示意圖如圖10所示。
圖10 通信測(cè)試連接示意圖
將串口服務(wù)器A和B均設(shè)置為TCP Client模式,使用的配置軟件為有人物聯(lián)網(wǎng)技術(shù)有限公司提供的USR-M0 V2.2.2.272軟件,兩串口服務(wù)器的具體設(shè)置參數(shù)如表1所示。
表1 串口服務(wù)器參數(shù)
經(jīng)過實(shí)際通信測(cè)試,在單雙工模式下,IP語音數(shù)據(jù)傳輸?shù)恼`碼率非常低,在單次傳輸1000 KB數(shù)據(jù)量以下的誤碼率為0,且不受通信距離限制。經(jīng)過多名用戶實(shí)際通話體驗(yàn),均表示IP語音清晰、易分辨,通話質(zhì)量滿足模擬訓(xùn)練中語音通信需求。
采用串口服務(wù)器實(shí)現(xiàn)基于TCP/IP協(xié)議的IP語音通信的設(shè)計(jì)方案,滿足模擬訓(xùn)練系統(tǒng)語音通信需求,并完成了硬件平臺(tái)的搭建和軟件系統(tǒng)的設(shè)計(jì)。經(jīng)過實(shí)際通信測(cè)試,該系統(tǒng)IP語音數(shù)據(jù)傳輸誤碼率低、語音效果良好,且具有通信距離不受
約束等優(yōu)勢(shì),滿足了模擬訓(xùn)練的應(yīng)用需求。該系統(tǒng)中基于STM32微處理器和UCOSⅢ操作系統(tǒng)設(shè)計(jì)的IP語音終端具有穩(wěn)定性好、實(shí)時(shí)性強(qiáng)、可擴(kuò)展等特點(diǎn),對(duì)于模擬訓(xùn)練系統(tǒng)中終端設(shè)備的開發(fā)具有一定的參考價(jià)值。
[1] 楊 衛(wèi), 陳佩珩, 張文棟,等. 基于藍(lán)牙技術(shù)的語音通信傳輸系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)測(cè)量與控制, 2013, 21(2):499-501.
[2] GAO Jing, 達(dá)新宇. 基于無線傳輸?shù)哪M電臺(tái)訓(xùn)練系統(tǒng)設(shè)計(jì)[J]. 微計(jì)算機(jī)信息, 2008, 24(22):259-261.
[3] 廖 泉. 基于CAN總線的語音通信系統(tǒng)[D]. 北京:北方工業(yè)大學(xué), 2006.
[4] 崔 奎, 胡純棟, 謝遠(yuǎn)來,等. 支持多種溫度傳感器的多通道低溫測(cè)量系統(tǒng)的設(shè)計(jì)[J]. 計(jì)算機(jī)測(cè)量與控制, 2016, 24(2):38-41.
[5] VLSI.VS1053b-Ogg Vorbis/MP3/AAC/WMA/FLAC/MIDI AUDIO CODEC CIRCUIT Datasheet Version1.30.[EB/OL].[2016-12].http://www.vlsi.fi.
[6] 王 波. 基于VS1053和ADXL345的MP3播放器設(shè)計(jì)[J]. 自動(dòng)化技術(shù)與應(yīng)用, 2014, 33(7):43-47.
[7] 鄭曉慶, 楊日杰, 楊立永,等. 多路輸出DC-DC電路設(shè)計(jì)[J]. 國外電子測(cè)量技術(shù), 2012, 31(9):31-33.
[8] 拉伯羅斯. 嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅲ[M]. 北京:北京航空航天大學(xué)出版社, 2012.
[9] 張 濤, 左謹(jǐn)平, 馬華玲. FatFs在32位微控制器STM32上的移植[J]. 電子技術(shù), 2010, 47(3):25-27.
Research on IP Voice Communication Based on STM32 and Serial Server
Li Ji, Shao Qiongling,Wang Shengjun
(Department of Aerospace Equipment, Space Engineering University, Beijing 101416,China)
Aiming at the application of voice communication in simulation training system, a method of IP voice communication based on TCP / IP protocol in LAN is proposed. The composition and working principle of the voice communication system are analyzed, the voice control circuit driven by the microprocessor STM32F103ZET6 and the speech codec chip VS1053B is designed, the SD card connection circuit and the power supply circuit are also designed.The embedded real time operating system UCOS Ⅲ is transplanted in order to enhance the real-time and stability of the control system, and the FatFs file system is used to manage the SD card storage device. The serial port server is used to achieve rapid exchange of serial data and Ethernet data and build the LAN of simulation training system, IP voice communications based on TCP/IP protocol is accomplished stably and efficiently. The .NET Framework’s Socket module and Winform module are used to design PC’s simulation network control software.Test results show that the system is stable、reliable and scalable, voice communication quality is good to meet the requirements of simulation training.
IP voice communication;STM32; serial server, UCOSⅢ; VS1053B;.NET Framework platform
2017-08-24;
2017-09-22。
李 基(1993-),男,河南信陽人,碩士研究生,主要從事衛(wèi)星通信、單片機(jī)與嵌入式應(yīng)用的研究。
邵瓊玲(1970-),男,山東昌樂人,副教授,碩士研究生導(dǎo)師,主要從事航天裝備應(yīng)用、單片機(jī)與嵌入式應(yīng)用的研究。
1671-4598(2017)12-0172-05
10.16526/j.cnki.11-4762/tp.2017.12.045
TP274
A