簡體   English   中英

兩個軟件實體(Uart / I2C /等)之間串行通信的簡單實現

[英]A simple implementation of serial communication between two software entities (Uart / I2C / etc.)

我已經完成了許多項目,其中包括PC和arduino / PLC /某種其他微控制器/處理器,並且在每個項目中,我們都有不同的協議用於PC應用程序和嵌入式應用程序之間的通信。 通常,硬件/控制器開發人員會發明一個簡單的協議,該協議在整個項目中都會不斷變化,並以以下形式出現:

Barker | Size | Data | Checksum

這次我要實現雙方,所以我想-這已經做了一百萬遍了。 這些事情必須有基本協議,並以C,C#,Java等實現。 我正在尋找的是輕量級的層,它將基於流的串行通信轉換為基於消息的消息。

我已經尋找了一段時間,但我自己找不到任何東西。 你碰巧認識一個嗎?

我對最近的項目有完全相同的要求,但對於低端的8位微控制器,我發現並沒有什么簡單的方法可言。 因此,我設計了MIN(微控制器互連網絡)來完成這項工作(受CAN和LIN的啟發)。

該代碼位於github上: https//github.com/min-protocol/min (請查看此處的Wiki)。

我定義了第0層(UART設置)和第1層(帶有校驗和的幀層等)以及C API。

我還在一個更高層上工作,該層正式定義了傳感器數據(溫度,壓力,電壓等)的打包方式,並帶有JSON表示法和自動生成嵌入代碼以將其從幀中打包/解包的工具。 最終目標是創建一個Wireshark解剖器,可以將其夾在串行線上,當與JSON配合使用時,它將以人類可讀的形式顯示信號。

我寫了一篇博客文章,展示了一個在Arduino板上運行的Hello World應用程序(通過FTDI UART-USB分支板將數據傳輸到我的主機PC):

https://kentindell.wordpress.com/2015/02/18/micrcontroller-interconnect-network-min-version-1-0/

這個串行問題經常發生,如果我們作為一個社區只是釘住它而不是為每個項目繼續對其進行編碼,那將是一個很好的選擇。

檢查開源HDLC

我最近遇到了MIN-雖然從未使用過

還要檢查此簡單的串行點對點通信協議

使用X / Y / Z MODEM協議必須是解決您的問題的好選擇。 它易於實施且易於使用。 我在ISP工具上使用X-MODEM與由cortex-m0驅動的MCU進行通信,並且效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM