那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

消息協(xié)議如何提高數(shù)據(jù)傳輸?shù)目煽啃?/h1>

串行端口PIC與其他設(shè)備通信的最簡(jiǎn)單方法之一。但是,事件串行端口存在缺陷,因此在本教程中,我們將了解消息協(xié)議如何提高數(shù)據(jù)傳輸?shù)目煽啃浴?/p>

示意圖

原始數(shù)據(jù)傳輸

現(xiàn)代微控制器通常內(nèi)置許多設(shè)備接口外設(shè),包括I2C,SPI,UART和能夠。雖然I2C和SPI專用于器件,并且嚴(yán)重依賴于選擇信號(hào)或啟動(dòng)/停止信號(hào),但UART更加自由。 UART的最大缺點(diǎn)之一是缺少時(shí)鐘信號(hào),這可能導(dǎo)致發(fā)送器或接收器的時(shí)鐘漂移(導(dǎo)致波特差異),幀錯(cuò)誤,甚至當(dāng)其中一個(gè)緩沖器出現(xiàn)溢出錯(cuò)誤方滿了。當(dāng)然,這些問題是使用定時(shí)器,監(jiān)視器和事件容易克服的相對(duì)性。但是,與I2C和SPI不同,串行連接在一種特定情況下更常見:可移動(dòng)硬件。 I2C和SPI器件通常是直接焊接到主電路板或永久連接到它們的IC。同時(shí),這些設(shè)備是主控制器的子設(shè)備,因此無法自行啟動(dòng)數(shù)據(jù)傳輸。

想象一下PIC和計(jì)算機(jī)通過串行連接進(jìn)行通信,其中每個(gè)設(shè)備都可以發(fā)送命令或數(shù)據(jù)到另一個(gè)設(shè)備。這樣的系統(tǒng)可以用普通的消息協(xié)議輕松實(shí)現(xiàn),其中發(fā)送的第一個(gè)字節(jié)代表命令,后面的字節(jié)代表該命令的數(shù)據(jù)。只要沒有中斷,該系統(tǒng)就可以正常運(yùn)行。但是,如果計(jì)算機(jī)在發(fā)送命令后傳輸數(shù)據(jù)字節(jié)的一半時(shí)崩潰并重新啟動(dòng)會(huì)發(fā)生什么?好吧,我們的程序?qū)⒅匦聠?dòng)并嘗試發(fā)送命令字節(jié)以啟動(dòng)數(shù)據(jù)傳輸,但命令字節(jié)將被PIC解釋為數(shù)據(jù)字節(jié),因?yàn)樗匀黄谕粋€(gè)數(shù)據(jù)字節(jié)。這會(huì)導(dǎo)致PIC產(chǎn)生錯(cuò)誤,因?yàn)樗x取的字節(jié)可能會(huì)產(chǎn)生意外結(jié)果。但這不僅僅是UART的一個(gè)問題;任何可能被終止的連接,無法知道連接已被終止,也可能崩潰。解決方案是使用消息協(xié)議!

我們的消息協(xié)議:DHP - DIY黑客協(xié)議

確保命令始終正確處理,命令字節(jié)值將是唯一的。對(duì)于我們的系統(tǒng),我們將有以下命令:

0x00 - 無操作

0x01 - 請(qǐng)求數(shù)據(jù)

0x02 - 寫數(shù)據(jù)

0x03 - 數(shù)據(jù)結(jié)束

0x04 - 重啟(發(fā)生錯(cuò)誤或失敗)

作為一個(gè)簡(jiǎn)單的例子,如果我們想通過計(jì)算機(jī)向PIC發(fā)送一些數(shù)據(jù),我們必須首先發(fā)送0x02,然后發(fā)送所有數(shù)據(jù),然后發(fā)送數(shù)據(jù)結(jié)束字節(jié)。如果傳輸中斷并且計(jì)算機(jī)嘗試重新發(fā)送數(shù)據(jù),它將再次發(fā)送整個(gè)數(shù)據(jù)包。 PIC將正確解釋命令字節(jié)并意識(shí)到正在發(fā)送新數(shù)據(jù)包。但是,如果我們的數(shù)據(jù)包含0,1,2,3或4,會(huì)發(fā)生什么? PIC會(huì)將這些解釋為命令字節(jié),因此會(huì)發(fā)生致命錯(cuò)誤。那么,我們?nèi)绾谓鉀Q這個(gè)問題?

雖然不是最有效的方法,但我們可以用其他形式表示我們的數(shù)據(jù)而不是原始字節(jié)值。一種方法是將我們的數(shù)據(jù)表示為十六進(jìn)制形式的ASCII字符,以便兩個(gè)ASCII字節(jié)代表一個(gè)字節(jié)的數(shù)據(jù)。例如,F(xiàn)F表示255,其中00表示0.因此,我們的數(shù)據(jù)字節(jié)永遠(yuǎn)不能與命令字節(jié)相同,并且通過使用ASCII編碼的十六進(jìn)制字節(jié),理論上我們可以有多達(dá)240個(gè)命令字節(jié)(留下16個(gè)十六進(jìn)制字符用于數(shù)據(jù))。使用ASCII編碼數(shù)據(jù)的缺點(diǎn)是我們有效地將數(shù)據(jù)速率減半,命令字節(jié)進(jìn)一步降低了速度。但與此同時(shí),系統(tǒng)的可靠性也得到了顯著提高。

數(shù)據(jù)完整性怎么樣?我們可以通過在數(shù)據(jù)包中添加校驗(yàn)和來實(shí)現(xiàn)這一點(diǎn),這樣接收方就可以確保數(shù)據(jù)完好無損。一種簡(jiǎn)單的方法是對(duì)收到的所有字節(jié)進(jìn)行異或,并將其用作校驗(yàn)和。如果任何一個(gè)位被誤讀,這將顯示在XOR校驗(yàn)和中。如果同一列中的兩個(gè)位被誤讀,則校驗(yàn)和保持不變,因此XOR僅對(duì)單位錯(cuò)誤有效(但這些是最常見的)。

示例包

編寫數(shù)字92(十六進(jìn)制0x5C)

從設(shè)備讀取(TX設(shè)備)請(qǐng)求數(shù)據(jù),RX設(shè)備發(fā)送請(qǐng)求的數(shù)據(jù))

的構(gòu)建的的

該項(xiàng)目可以使用許多不同的電路構(gòu)造技術(shù)構(gòu)建,包括條形板,矩陣板,面包板和PCB。在這個(gè)例子中,我使用了在CNC機(jī)床上制造的PCB(通過隔離布線),但我正在考慮回到化學(xué)過程,原因?qū)⒃诤竺娴奈恼轮杏懻摗?/p>

這也是我第一個(gè)包含使用XYZ da Vinci Jr. 3D打印機(jī)制作的自定義項(xiàng)目框的項(xiàng)目。設(shè)計(jì)本身(痛苦地)在Google SketchUp中制作,然后由于STL導(dǎo)出器插件導(dǎo)出為STL文件。然后,STL文件在XYZmaker中導(dǎo)入并打印。雖然這個(gè)項(xiàng)目盒不使用螺絲,但未來的設(shè)計(jì)將會(huì)如此。雖然3D打印的型號(hào)可能價(jià)格昂貴(這個(gè)盒子使用價(jià)值約1.00美元的塑料),但它是一種定制設(shè)計(jì),可以制作近乎完美的功能,如切口和孔。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    iic協(xié)議數(shù)據(jù)傳輸速率標(biāo)準(zhǔn)

    I2C協(xié)議定義了多種數(shù)據(jù)傳輸速率標(biāo)準(zhǔn),以適應(yīng)不同的應(yīng)用需求。以下是I2C協(xié)議的主要數(shù)據(jù)傳輸速率標(biāo)準(zhǔn): 標(biāo)準(zhǔn)模式(Standard-mode) :速率為100 kbps(每秒100,00
    的頭像 發(fā)表于 02-05 13:40 ?86次閱讀

    MPU數(shù)據(jù)傳輸協(xié)議詳解

    協(xié)議的基本概念 數(shù)據(jù)傳輸協(xié)議定義了數(shù)據(jù)在MPU和外部設(shè)備之間傳輸的方式,包括數(shù)據(jù)的格式、同步方式
    的頭像 發(fā)表于 01-08 09:37 ?162次閱讀

    總線數(shù)據(jù)傳輸的安全分析

    總線數(shù)據(jù)傳輸的安全分析,特別是針對(duì)像CAN(Controller Area Network)總線這樣的重要通信協(xié)議,是一個(gè)復(fù)雜而關(guān)鍵的課題。以下是對(duì)CAN總線數(shù)據(jù)傳輸安全
    的頭像 發(fā)表于 12-31 09:51 ?228次閱讀

    如何使用 HTTP 協(xié)議進(jìn)行數(shù)據(jù)傳輸

    在互聯(lián)網(wǎng)時(shí)代,數(shù)據(jù)傳輸是信息交換的基礎(chǔ)。HTTP協(xié)議作為最常用的數(shù)據(jù)傳輸協(xié)議之一,支撐著全球數(shù)十億用戶的數(shù)據(jù)交互。 HTTP
    的頭像 發(fā)表于 12-30 09:24 ?452次閱讀

    信噪比對(duì)數(shù)據(jù)傳輸速度的影響

    到信號(hào)檢測(cè)和識(shí)別的準(zhǔn)確,以及數(shù)據(jù)傳輸可靠性和速度。 二、信噪比對(duì)數(shù)據(jù)傳輸速度的影響 影響通信質(zhì)量 : 高的信噪比意味著信號(hào)強(qiáng)度遠(yuǎn)大于噪聲強(qiáng)度,信號(hào)能夠更準(zhǔn)確地被接收和解碼,從而減少
    的頭像 發(fā)表于 12-10 14:38 ?625次閱讀

    PCIe數(shù)據(jù)傳輸協(xié)議詳解

    、網(wǎng)卡和聲卡等,以實(shí)現(xiàn)高效的數(shù)據(jù)傳輸。以下是對(duì)PCIe數(shù)據(jù)傳輸協(xié)議的介紹: 一、PCIe協(xié)議的基本概念 PCIe協(xié)議定義了一系列規(guī)范和要求,
    的頭像 發(fā)表于 11-26 16:12 ?1652次閱讀

    socket 數(shù)據(jù)傳輸效率提升技巧

    TCP :提供可靠的、有序的和錯(cuò)誤檢查的數(shù)據(jù)傳輸。適用于需要保證數(shù)據(jù)完整的場(chǎng)景。 UDP :提供快速但不可靠
    的頭像 發(fā)表于 11-12 14:34 ?513次閱讀

    CAN總線數(shù)據(jù)傳輸速率設(shè)置

    數(shù)據(jù)傳輸速度的指標(biāo),以每秒傳輸的位數(shù)(bps)來表示。 1. CAN總線概述 CAN總線由Bosch公司在1980年代開發(fā),最初用于汽車工業(yè),以取代傳統(tǒng)的點(diǎn)對(duì)點(diǎn)布線系統(tǒng)。CAN總線以其可靠性、靈活性和成本效益而聞名,現(xiàn)已廣泛應(yīng)用
    的頭像 發(fā)表于 11-12 10:03 ?1031次閱讀

    N型插座在數(shù)據(jù)傳輸中的應(yīng)用有哪些

    德索工程師說道N型插座的低插入損耗特性意味著信號(hào)在傳輸過程中的衰減較小,從而保證了信號(hào)強(qiáng)度的穩(wěn)定性和傳輸質(zhì)量。低電壓駐波比則確保了信號(hào)在連接器內(nèi)部的穩(wěn)定傳輸,減少了信號(hào)反射和干擾。這兩個(gè)特性共同作用,
    的頭像 發(fā)表于 09-26 15:17 ?362次閱讀
    N型插座在<b class='flag-5'>數(shù)據(jù)傳輸</b>中的應(yīng)用有哪些

    8芯M16插頭數(shù)據(jù)傳輸的準(zhǔn)確

      德索工程師說道8芯M16插頭作為高性能連接器,其數(shù)據(jù)傳輸的準(zhǔn)確對(duì)于整個(gè)系統(tǒng)的穩(wěn)定性和可靠性至關(guān)重要。以下是對(duì)8芯M16插頭數(shù)據(jù)傳輸準(zhǔn)確
    的頭像 發(fā)表于 06-14 18:06 ?372次閱讀
    8芯M16插頭<b class='flag-5'>數(shù)據(jù)傳輸</b>的準(zhǔn)確<b class='flag-5'>性</b>

    GMSL技術(shù) 實(shí)現(xiàn)高帶寬、低延遲和高可靠性數(shù)據(jù)傳輸# ADI# GMSL# 汽車# 數(shù)據(jù)傳輸

    adi數(shù)據(jù)傳輸電機(jī)
    Excelpoint世健
    發(fā)布于 :2024年05月17日 16:34:25

    水利SL427協(xié)議是什么?水資源監(jiān)測(cè)數(shù)據(jù)傳輸規(guī)約sl427

    結(jié)構(gòu)、數(shù)據(jù)傳輸可靠性等。 SL427協(xié)議規(guī)約明確了水資源監(jiān)測(cè)數(shù)據(jù)的標(biāo)準(zhǔn)格式,包括數(shù)據(jù)采集時(shí)間、地點(diǎn)、指標(biāo)參數(shù)等統(tǒng)一字段的定義與編碼標(biāo)準(zhǔn),以
    的頭像 發(fā)表于 03-16 17:30 ?799次閱讀

    DTU的多種協(xié)議,解鎖數(shù)據(jù)傳輸的無限可能

    DTU,即數(shù)據(jù)傳輸單元,是一種在物聯(lián)網(wǎng)(IoT)網(wǎng)絡(luò)中常用的設(shè)備,主要用于在傳感器和智能設(shè)備之間進(jìn)行數(shù)據(jù)傳輸。DTU使用多種協(xié)議來實(shí)現(xiàn)這一目標(biāo),這些協(xié)議不僅
    的頭像 發(fā)表于 03-01 11:00 ?911次閱讀
    DTU的多種<b class='flag-5'>協(xié)議</b>,解鎖<b class='flag-5'>數(shù)據(jù)傳輸</b>的無限可能

    萬兆電口模塊:滿足大規(guī)模數(shù)據(jù)傳輸需求的解決方案

    萬兆電口模塊具有高速傳輸、兼容好、可靠性高等優(yōu)勢(shì),可以滿足大規(guī)模數(shù)據(jù)傳輸需求,推動(dòng)網(wǎng)絡(luò)技術(shù)發(fā)展。
    的頭像 發(fā)表于 02-26 16:27 ?690次閱讀

    多業(yè)務(wù)光端機(jī)安全解析:保障數(shù)據(jù)傳輸可靠性與保密

    隨著信息技術(shù)的飛速發(fā)展,數(shù)據(jù)的安全和保密已成為各行各業(yè)關(guān)注的焦點(diǎn)。多業(yè)務(wù)光端機(jī)作為一種高速、高效的光通信設(shè)備,在保障數(shù)據(jù)傳輸可靠性與保
    的頭像 發(fā)表于 02-23 13:58 ?523次閱讀

    百家乐现金网平台排名| 二八杠小游戏| 聂荣县| 百家乐官网孖宝揽| 银泰百家乐官网龙虎斗| 百家乐真钱游戏下载| 大发888官网注册送58| 百家乐官网翻天粤语下载| 百家乐官网免费赌博软件| 百家乐太阳城娱乐城| 大发888下载df888| 百家乐官网如何洗吗| 百家乐上海代理| 博彩论坛| 乐九百家乐游戏| 百家乐视频游戏金币| 真人游戏平台| 百家乐官网牌桌订做| 百家百家乐视频游戏世界| 西乌| 百家乐输了100万| 皇冠开户正网 | 百家乐视频双扣| 娱乐城开户送体验金| 百家乐官网平注常赢规则| 博彩导航网| 太阳百家乐官网破解| 大发888官网免费下载| 现场百家乐官网能赢吗| 水果机小游戏| 百家乐官网家乐娱乐城| 大发888注册 大发888官网| 新濠峰百家乐官网的玩法技巧和规则 | 大发888娱乐厂场| 百家乐官网设备电子路| 大发888娱乐城 34hytrgwsdfpv| 百家乐官网的路子怎么| 现金网hg8568.com| 做生意的门市风水| 呼图壁县| 百家乐购怎么样|