欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種串口通信方法及系統(tǒng)的制作方法

文檔序號(hào):8223456閱讀:330來(lái)源:國(guó)知局
一種串口通信方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于數(shù)據(jù)通訊領(lǐng)域,尤其涉及一種在雙MCU之間的串口通信的方法及系 統(tǒng)。
【背景技術(shù)】
[0002] 由于串口所具備的通信線路簡(jiǎn)單等特點(diǎn),通信常常會(huì)被用于MCU之間的通信。但 是為了保證MCU之間大量數(shù)據(jù)穩(wěn)定可靠的傳輸,需要使用串口通信協(xié)議來(lái)保證?,F(xiàn)有的串 口通信協(xié)議是都是根據(jù)場(chǎng)合需求來(lái)制定出來(lái)的,很難適合針對(duì)兩個(gè)MCU之間多個(gè)任務(wù)的交 互。

【發(fā)明內(nèi)容】

[0003] 本發(fā)明的目的在于提供一種串口通信方法,旨在解決現(xiàn)有技術(shù)中串口通信很難在 雙MCU之間多個(gè)任務(wù)交互的問(wèn)題。
[0004] 本發(fā)明是這樣實(shí)現(xiàn)的,一種串口通信方法,該串口通信方法是基于在雙MCU之間 進(jìn)行的串口通信,所述串口通信方法首先系統(tǒng)對(duì)BSP進(jìn)行初始化,接著創(chuàng)建串口通信的接 收任務(wù)和發(fā)送任務(wù)并運(yùn)行,在運(yùn)行時(shí)將任務(wù)掛起;所述接收任務(wù)包括以下步驟: A、 串口接收到一幀數(shù)據(jù)喚醒掛起任務(wù)并將接收數(shù)據(jù)送入接收數(shù)據(jù)隊(duì)列; B、 串口接收任務(wù)喚醒時(shí),嘗試是否從隊(duì)列中讀取到數(shù)據(jù);如讀取到數(shù)據(jù),則執(zhí)行步驟 C ;如讀取不到數(shù)據(jù),則再次將任務(wù)掛起; C、 判斷讀取到的數(shù)據(jù)是否是有效的一幀數(shù)據(jù),如是,則對(duì)數(shù)據(jù)進(jìn)行解析、處理并執(zhí)行步 驟D,如否,則丟棄數(shù)據(jù),發(fā)送相對(duì)應(yīng)的錯(cuò)誤幀并返回步驟A ; D、 根據(jù)解析出的任務(wù)ID查詢當(dāng)前串口回調(diào)函數(shù)注冊(cè)表; E、 判斷該任務(wù)是否已經(jīng)注冊(cè)回調(diào)函數(shù),如是,則調(diào)用對(duì)應(yīng)的回調(diào)函數(shù),并回復(fù)應(yīng)答幀; 如否,則丟棄數(shù)據(jù),發(fā)送相對(duì)應(yīng)的錯(cuò)誤幀并返回步驟A ; 所述發(fā)送任務(wù)包括以下步驟: a、 發(fā)送緩存區(qū)有需要發(fā)送的一幀數(shù)據(jù)到發(fā)送隊(duì)列喚醒掛起任務(wù); b、 串口發(fā)送任務(wù)從發(fā)送隊(duì)列中讀取數(shù)據(jù)進(jìn)行打包處理; c、 串口發(fā)送任務(wù)將打包好的數(shù)據(jù)進(jìn)行發(fā)送并在預(yù)設(shè)時(shí)間內(nèi)等待應(yīng)答標(biāo)志; d、 判斷是否接收到應(yīng)答標(biāo)志,如是,則執(zhí)行步驟e,如否,則進(jìn)入重發(fā)打包好的數(shù)據(jù)機(jī) 制; e、 判斷發(fā)送隊(duì)列是否為空,如是,則返回任務(wù)掛起狀態(tài),如否,則執(zhí)行步驟c。
[0005] 本發(fā)明的進(jìn)一步技術(shù)方案是:,所述發(fā)送任務(wù)的步驟d中還包括以下步驟: dl、判斷是否超于預(yù)設(shè)的重發(fā)次數(shù),如是,則丟棄數(shù)據(jù),并向發(fā)送此幀數(shù)據(jù)的任務(wù)反饋 錯(cuò)誤日志,如否,則執(zhí)行步驟Co
[0006] 本發(fā)明的進(jìn)一步技術(shù)方案是:所述發(fā)送任務(wù)的打包處理是對(duì)數(shù)據(jù)加上頭尾幀數(shù) 據(jù),對(duì)中間出現(xiàn)的幀頭、幀尾數(shù)據(jù)進(jìn)行轉(zhuǎn)義。
[0007] 本發(fā)明的進(jìn)一步技術(shù)方案是:所述發(fā)送任務(wù)中步驟c中的預(yù)設(shè)時(shí)間為5-10秒。
[0008] 本發(fā)明的進(jìn)一步技術(shù)方案是:所述發(fā)送任務(wù)中步驟dl中的預(yù)設(shè)的重發(fā)次數(shù)為5 次。
[0009] 本發(fā)明的另一目的在于提供一種串口通信系統(tǒng),該串口通信系統(tǒng)是基于在雙MCU 之間進(jìn)行的串口通信,所述串口通信系統(tǒng)首先對(duì)BSP進(jìn)行初始化,接著創(chuàng)建串口通信的接 收任務(wù)模塊和發(fā)送任務(wù)模塊并運(yùn)行,在運(yùn)行時(shí)將任務(wù)掛起;所述接收任務(wù)模塊包括: 接收喚醒單元,用于串口接收到一幀數(shù)據(jù)喚醒掛起任務(wù)并將接收數(shù)據(jù)送入接收數(shù)據(jù)隊(duì) 列; 接收讀取單元,用于串口接收任務(wù)喚醒時(shí),嘗試是否從隊(duì)列中讀取到數(shù)據(jù);如讀取到數(shù) 據(jù),則對(duì)數(shù)據(jù)進(jìn)行解析、處理并執(zhí)行接收有效數(shù)據(jù)判斷單元;如讀取不到數(shù)據(jù),則再次將任 務(wù)掛起; 接收有效數(shù)據(jù)判斷單元,用于判斷讀取到的數(shù)據(jù)是否是有效的一幀數(shù)據(jù),如是,則執(zhí)行 查詢單元,如否,則丟棄數(shù)據(jù),發(fā)送相對(duì)應(yīng)的錯(cuò)誤幀并返回接收喚醒單元; 查詢單元,用于根據(jù)解析出的任務(wù)ID查詢當(dāng)前串口回調(diào)函數(shù)注冊(cè)表; 注冊(cè)函數(shù)判斷單元,用于判斷該任務(wù)是否已經(jīng)注冊(cè)回調(diào)函數(shù),如是,則調(diào)用對(duì)應(yīng)的回調(diào) 函數(shù),并回復(fù)應(yīng)答幀;如否,則丟棄數(shù)據(jù),發(fā)送相對(duì)應(yīng)的錯(cuò)誤幀并返回接收喚醒單元; 所述發(fā)送任務(wù)模塊包括: 發(fā)送喚醒單元,用于發(fā)送緩存區(qū)有需要發(fā)送的一幀數(shù)據(jù)到發(fā)送隊(duì)列喚醒掛起任務(wù); 打包處理單元,用于串口發(fā)送任務(wù)從發(fā)送隊(duì)列中讀取數(shù)據(jù)進(jìn)行打包處理; 發(fā)送等待單元,用于串口發(fā)送任務(wù)將打包好的數(shù)據(jù)進(jìn)行發(fā)送并在預(yù)設(shè)時(shí)間內(nèi)等待應(yīng)答 標(biāo)志; 應(yīng)答判斷單元,用于判斷是否接收到應(yīng)答標(biāo)志,如是,則執(zhí)行隊(duì)列判斷單元,如否,則進(jìn) 入重發(fā)打包好的數(shù)據(jù)機(jī)制; 隊(duì)列判斷單元,用于判斷發(fā)送隊(duì)列是否為空,如是,則返回任務(wù)掛起狀態(tài),如否,則執(zhí)行 發(fā)送等待單元。
[0010] 本發(fā)明的進(jìn)一步技術(shù)方案是:所述應(yīng)答判斷單元中還包括: 重發(fā)次數(shù)判斷模塊,用于判斷是否超于預(yù)設(shè)的重發(fā)次數(shù),如是,則丟棄數(shù)據(jù),并向發(fā)送 此幀數(shù)據(jù)的任務(wù)反饋錯(cuò)誤日志,如否,則執(zhí)行發(fā)送等待單元。
[0011] 本發(fā)明的進(jìn)一步技術(shù)方案是:所述發(fā)送任務(wù)模塊中的打包處理是對(duì)數(shù)據(jù)加上頭尾 幀數(shù)據(jù),對(duì)中間出現(xiàn)的幀頭、幀尾數(shù)據(jù)進(jìn)行轉(zhuǎn)義。
[0012] 本發(fā)明的進(jìn)一步技術(shù)方案是:所述發(fā)送任務(wù)模中的發(fā)送等待單元中的預(yù)設(shè)時(shí)間為 5-10 秒。
[0013] 本發(fā)明的進(jìn)一步技術(shù)方案是:所述重發(fā)次數(shù)判斷模塊中預(yù)設(shè)的重發(fā)次數(shù)為5次。
[0014] 本發(fā)明的有益效果是:本發(fā)明適用于雙MCU之間多個(gè)任務(wù)的串口通信。在保證通 訊可靠的情況下同時(shí)兼顧傳輸速度,由需要使用串口通信來(lái)進(jìn)行交互的任務(wù)來(lái)向運(yùn)行串口 協(xié)議的任務(wù)注冊(cè),通過(guò)運(yùn)行串口協(xié)議的任務(wù)來(lái)實(shí)現(xiàn)任務(wù)數(shù)據(jù)的打包、發(fā)送和接受到的數(shù)據(jù) 進(jìn)行解包、派發(fā),簡(jiǎn)化多個(gè)任務(wù)下串口的使用。本方法操作簡(jiǎn)單、效率高、傳輸速度快、通信 可靠。
【附圖說(shuō)明】
[0015]圖1是本發(fā)明實(shí)施例提供的串口通信方法接收任務(wù)的流程圖; 圖2是本發(fā)明實(shí)施例提供的串口通信方法發(fā)送任務(wù)的流程圖; 圖3是本發(fā)明實(shí)施例提供的串口通信系統(tǒng)的接收任務(wù)的結(jié)構(gòu)圖; 圖4是本發(fā)明實(shí)施例提供的串口通信系統(tǒng)的發(fā)送任務(wù)的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0016] 附圖標(biāo)記:1_接收喚醒單元 2-接收讀取單元 3-接收有效數(shù)據(jù)判斷單元 4-查詢單元5-注冊(cè)函數(shù)判斷單元11-發(fā)送喚醒單元12-打包處理單元13-發(fā)送等 待單元14-應(yīng)答判斷單元15-隊(duì)列判斷單元。
[0017] 圖1、2示出了本發(fā)明提供的一種串口通信方法中的發(fā)送任務(wù)和接收任務(wù)的流程 圖,一種串口通信方法,該串口通信方法是基于在雙MCU之間進(jìn)行的串口通信,所述串口 通信方法首先系統(tǒng)對(duì)BSP進(jìn)行初始化,接著創(chuàng)建串口通信的接收任務(wù)和發(fā)送任務(wù)并運(yùn)行, 在運(yùn)行時(shí)將任務(wù)掛起;所述接收任務(wù)詳述如下: 步驟S1,串口接收到一幀數(shù)據(jù)喚醒掛起的任務(wù),并將接收到的數(shù)據(jù)送入接收數(shù)據(jù)隊(duì)列, 在喚醒掛起任務(wù)時(shí)發(fā)送給串口接收任務(wù)的事件或信號(hào)量等信息。
[0018] 步驟S2,在MCU的串口接收到任務(wù)喚醒的時(shí)候,串口嘗試這從隊(duì)列中是否能夠讀 取到數(shù)據(jù),如果讀取到數(shù)據(jù),則執(zhí)行步驟S3,如果讀取不到數(shù)據(jù),則將任務(wù)再次掛起。
[0019] 步驟S3,
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
武宣县| 肇庆市| 沈丘县| 无棣县| 会东县| 克东县| 衡南县| 锦屏县| 亚东县| 沙湾县| 嘉黎县| 内乡县| 开原市| 天峻县| 商洛市| 萨迦县| 商河县| 同心县| 读书| 景德镇市| 右玉县| 朝阳县| 安吉县| 望江县| 湖州市| 略阳县| 会昌县| 西充县| 祁门县| 习水县| 三明市| 庆阳市| 石首市| 林甸县| 全州县| 额敏县| 财经| 广汉市| 东阳市| 石嘴山市| 开江县|