簡(jiǎn)介
串口服務(wù)器,提供串口轉(zhuǎn)網(wǎng)絡(luò)的功能,將串口轉(zhuǎn)換成TCP/IP協(xié)議網(wǎng)絡(luò)接口,實(shí)現(xiàn)串口和網(wǎng)絡(luò)接口的數(shù)據(jù)雙向透明傳輸,擴(kuò)展串口設(shè)備的通訊距離。
赤菟V307是搭載沁恒自研RISC-V內(nèi)核青稞V4F的高性能互聯(lián)型MCU,主頻支持144MHz,支持硬件浮點(diǎn)運(yùn)算(FPU),提供八個(gè)UART接口、USB2.0高速接口(480Mbps)并內(nèi)置了PHY收發(fā)器、千兆以太網(wǎng)MAC并集成10M PHY、2個(gè)CAN接口等豐富的外設(shè)資源。
基于八個(gè)UART接口、10M以太網(wǎng)的強(qiáng)大外設(shè),通過(guò)單片赤菟V307即可實(shí)現(xiàn)八串口服務(wù)器,每個(gè)串口獨(dú)立工作。
源碼倉(cāng)庫(kù)地址:https://github.com/openwch/ch32v307/tree/main/Application/8_uarts_server
網(wǎng)口端設(shè)計(jì)
網(wǎng)口端采用的是開(kāi)源的輕量級(jí)TCP/IP協(xié)議棧LwIP,可以輕松實(shí)現(xiàn)赤菟V307網(wǎng)口端的TCP、UDP通信。
例程中默認(rèn)開(kāi)啟的是TCP Client模式,采用單向循環(huán)鏈表的方式接收TCP Server發(fā)過(guò)來(lái)的數(shù)據(jù)。
當(dāng)串口端接收到數(shù)據(jù)時(shí),直接啟動(dòng)TCP Client的發(fā)送函數(shù),并更新隊(duì)列的讀指針。
串口端設(shè)計(jì)
串口端為了加快數(shù)據(jù)的收發(fā),采用DMA循環(huán)隊(duì)列的方式接收數(shù)據(jù),通過(guò)查詢接收DMA 傳輸數(shù)據(jù)數(shù)目寄存器CNTR,與上一次該值進(jìn)行比較,有變化則說(shuō)明串口接收到數(shù)據(jù),此時(shí)便更新隊(duì)列寫指針,并計(jì)算隊(duì)列中數(shù)據(jù)長(zhǎng)度。
根據(jù)網(wǎng)口接收端的鏈表中的數(shù)據(jù)地址及長(zhǎng)度,啟動(dòng)串口端的發(fā)送DMA進(jìn)行數(shù)據(jù)發(fā)送。
多任務(wù)設(shè)計(jì)
通過(guò)RT-Thread操作系統(tǒng),創(chuàng)建兩個(gè)線程,分別為用于網(wǎng)口端接收數(shù)據(jù)的“eth_rev”線程和用于串口端接收數(shù)據(jù)的“uart_rev”線程。
采用時(shí)間片輪轉(zhuǎn)方式進(jìn)行這兩個(gè)線程的調(diào)度,當(dāng)“eth_rev”線程收到網(wǎng)口端的數(shù)據(jù)時(shí),啟動(dòng)串口端的發(fā)送DMA將數(shù)據(jù)通過(guò)串口發(fā)送出去;當(dāng)“uart_rev”線程收到串口端的數(shù)據(jù)時(shí),啟動(dòng)網(wǎng)口端的發(fā)送函數(shù)將數(shù)據(jù)通過(guò)網(wǎng)口發(fā)送出去,這樣就實(shí)現(xiàn)了串口和網(wǎng)絡(luò)接口的數(shù)據(jù)雙向透明傳輸。
驗(yàn)證
串口默認(rèn)波特率為115200,實(shí)測(cè)八個(gè)串口獨(dú)立工作,可以實(shí)現(xiàn)收發(fā)10+KB/s的速度。
該例程目前僅實(shí)現(xiàn)了TCP Client的收發(fā),還有TCP Server、UDP Server/Client等需要完善,希望各位開(kāi)發(fā)者能夠積極提交pr,一起完善該項(xiàng)目。可添加微信15950380583為好友,注明:赤菟V307,邀請(qǐng)您進(jìn)入沁恒RISC-V MCU開(kāi)發(fā)者微信交流群,一起玩轉(zhuǎn)RISC-V MCU。
-
mcu
+關(guān)注
關(guān)注
146文章
16890瀏覽量
349931 -
網(wǎng)絡(luò)接口
+關(guān)注
關(guān)注
0文章
83瀏覽量
17192 -
串口
+關(guān)注
關(guān)注
14文章
1540瀏覽量
76065 -
串口服務(wù)器
+關(guān)注
關(guān)注
1文章
159瀏覽量
17315 -
RISC-V
+關(guān)注
關(guān)注
44文章
2208瀏覽量
45959
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論