www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]公司里做項(xiàng)目,嵌入式系統(tǒng)大大小小,到處都是。因?yàn)槎际且粋€(gè)系統(tǒng)里的,所以都需要通訊,既然通訊就涉及到協(xié)議問(wèn)題。

公司里做項(xiàng)目,嵌入式系統(tǒng)大大小小,到處都是。因?yàn)槎际且粋€(gè)系統(tǒng)里的,所以都需要通訊,既然通訊就涉及到協(xié)議問(wèn)題。

談及協(xié)議,很多工程師覺(jué)得協(xié)議的設(shè)計(jì)相對(duì)簡(jiǎn)單,主要是報(bào)文的設(shè)計(jì)。大多數(shù)時(shí)候,協(xié)議的應(yīng)用場(chǎng)景簡(jiǎn)單,沒(méi)有復(fù)雜的交互。這么做的確也是沒(méi)什么太大的問(wèn)題。然而,就是這么簡(jiǎn)單的場(chǎng)景,仍有一些協(xié)議會(huì)在實(shí)際中發(fā)生意想不到的問(wèn)題。歸根結(jié)蒂,還是沒(méi)有把握協(xié)議涉及的規(guī)律。下面我們簡(jiǎn)單的聊聊協(xié)議設(shè)計(jì)的規(guī)律。

協(xié)議設(shè)計(jì)中面臨的問(wèn)題:

1.設(shè)計(jì)者大多數(shù)情況下,從應(yīng)用出發(fā),僅僅考慮了基本需求的滿足,沒(méi)有考慮擴(kuò)展需求的滿足;

2.從osi七層理論上,我們往往設(shè)計(jì)的協(xié)議時(shí)站在比較高層的角度去設(shè)計(jì),往往忽視了RS485/RS232, I2C, CAN, ETHERNET等物理層承載特點(diǎn),設(shè)計(jì)缺乏對(duì)具體應(yīng)用的針對(duì)性,導(dǎo)致潛在問(wèn)題的產(chǎn)生;

3.容錯(cuò)和效率的考慮不足。

基本需求肯定是完成系統(tǒng)的基本功能。然而可能因?yàn)樾枨蠖x的不完整,系統(tǒng)設(shè)計(jì)人員沒(méi)有前瞻性;協(xié)議中沒(méi)有定義版本號(hào),沒(méi)有對(duì)協(xié)議兼容性的測(cè)試,導(dǎo)致老產(chǎn)品和新產(chǎn)品協(xié)議不兼容,而又無(wú)法采用簡(jiǎn)單的軟件辦法解決。這是個(gè)常見(jiàn)問(wèn)題,最簡(jiǎn)單的辦法是在握手協(xié)議中增加協(xié)議的版本號(hào),用以判斷是否對(duì)該協(xié)議支持以及為后續(xù)的軟件做兼容準(zhǔn)備。協(xié)議看似好像只有報(bào)文設(shè)計(jì),就像一個(gè)人一樣,他在父母的眼里永遠(yuǎn)是個(gè)孩子,在自己的孩子面前是父母,在朋友面前是朋友。我相信所有這些側(cè)面合起來(lái)才是一個(gè)完整的人。UML 從不同的角度去觀察系統(tǒng)會(huì)得到不同的圖。協(xié)議也是如此,協(xié)議的報(bào)文只是協(xié)議靜態(tài)特性的一個(gè)方面,協(xié)議還有更重要的動(dòng)態(tài)特性。如出錯(cuò)后怎么辦,重發(fā)?重發(fā)幾次?節(jié)點(diǎn)損壞如何從網(wǎng)絡(luò)中剔除?怎么樣才是一個(gè)完整的通訊過(guò)程?持續(xù)的時(shí)間是多少?最壞情況下是怎么樣的?最好的情況下是什么樣的?誰(shuí)發(fā)起通訊?重要的協(xié)議可能要保證非??煽?,如何確定接受者接收的完全正確,并且可靠執(zhí)行?往往這些問(wèn)題已經(jīng)超出了對(duì)報(bào)文自身的考慮,而是對(duì)系統(tǒng)解決方法的一種設(shè)計(jì)。這里有個(gè)小例子,一個(gè)RS485的半工通訊,主機(jī)向從機(jī)發(fā)送數(shù)據(jù),希望從機(jī)可靠保存該數(shù)據(jù);從機(jī)接收到該數(shù)據(jù)驗(yàn)證完畢后,寫(xiě)入自身的存儲(chǔ)裝置,然后再回應(yīng)主機(jī),寫(xiě)入成功或者失敗。但這里有個(gè)問(wèn)題,rs485是個(gè)主/從結(jié)構(gòu),無(wú)法同時(shí)發(fā)送數(shù)據(jù),只能由主機(jī)點(diǎn)名從機(jī)回應(yīng)。如果寫(xiě)入時(shí)間過(guò)長(zhǎng),從機(jī)回應(yīng)報(bào)文的時(shí)間也必定過(guò)長(zhǎng);如果從機(jī)很多的話,這個(gè)時(shí)間就經(jīng)不起浪費(fèi)了。可能修改為,從機(jī)收到主機(jī)的信息后,立即應(yīng)答收到。主機(jī)再分發(fā)其他從機(jī)的數(shù)據(jù),分發(fā)完畢后,再由主機(jī)采用查詢協(xié)議查詢從機(jī)寫(xiě)入的成功與否。 當(dāng)然,也可以采用一些系統(tǒng)級(jí)的辦法,只要從機(jī)收到數(shù)據(jù)后,從機(jī)一定保證數(shù)據(jù)寫(xiě)入成功,那么這個(gè)問(wèn)題也變得簡(jiǎn)單了。主機(jī)也不用再查詢寫(xiě)入是否成功了。軟件的設(shè)計(jì)也就相對(duì)簡(jiǎn)單很多。

RS485/RS232也有雙工通訊,但在實(shí)際中用得少。這里除了省線材之外,恐怕最重要的是因?yàn)镽S485/RS232不帶沖突檢測(cè),要么采用大家輪樁做主機(jī),要么一個(gè)主機(jī),點(diǎn)名讓大家發(fā)言的辦法。所以,通訊采用一問(wèn)一答的方法比較多,這比較符合半工的工作狀態(tài)。當(dāng)然不排除一些雙工的應(yīng)用場(chǎng)景。實(shí)際應(yīng)用中,大多數(shù)還是采用半工的辦法。這里協(xié)議的設(shè)計(jì)主要考慮單點(diǎn)較多;多播和單播,因?yàn)椴荒艽_定從機(jī)是否接收成功,所以重要的協(xié)議在多播和廣播之后還要查詢,這個(gè)是很麻煩的事情。軟件過(guò)程因此而復(fù)雜很多。RS485/RS232的通訊有自己的檢測(cè)錯(cuò)誤的辦法,比如說(shuō)奇偶校驗(yàn),奇偶校驗(yàn)是一種簡(jiǎn)單的錯(cuò)誤校驗(yàn),并不能100%的擋住錯(cuò)誤;對(duì)于可靠地協(xié)議,可能還是要設(shè)計(jì)自己的CRC或者校驗(yàn)和等方法。但CRC校驗(yàn)雖然可以用查表的辦法,但計(jì)算時(shí)間比奇偶校驗(yàn)和校驗(yàn)和等方法計(jì)算量還是過(guò)大了些。在一些實(shí)時(shí)性和低端應(yīng)用場(chǎng)合,可能時(shí)間開(kāi)銷大了些。所以,如果報(bào)文不是過(guò)大,還是可以考慮奇偶校驗(yàn)和校驗(yàn)和;如果過(guò)大,先考慮crc8,再考慮crc16和crc32,不要一竿子切。

I2C的通訊一般只用于板級(jí),但現(xiàn)在也有用于現(xiàn)場(chǎng)總線的趨勢(shì)。I2C設(shè)計(jì)之初是支持多主多從,兩個(gè)主機(jī)可以同時(shí)發(fā)送信息,仲裁獲勝的主機(jī)獲得總線,繼續(xù)發(fā)送。有仲裁不代表可以同時(shí)雙向發(fā)送信息,即主機(jī)和從機(jī)的地位還是不同的,主機(jī)點(diǎn)名從機(jī)回應(yīng)信息;雖然現(xiàn)在的CPU所帶的I2C硬件同時(shí)支持主模式和從模式,但在同一時(shí)刻,這兩個(gè)模式是不相容的。對(duì)于一個(gè)節(jié)點(diǎn)要么是主要么是從,而每次通訊都是由主發(fā)起,從被動(dòng)接收,這就導(dǎo)致了和rs232無(wú)本質(zhì)的區(qū)別。且,I2C的物理層協(xié)議也決定了,其通訊方式也沒(méi)有rs232靈活,只能工作在半工狀態(tài)。兩個(gè)CPU傳遞一些簡(jiǎn)單的信息,在CPU無(wú)多余的rs232情況下,還是非常有用得。由于是板級(jí)的通訊,信號(hào)的完整性保證了以后,基本上不可能存在錯(cuò)誤,也不需要額外的校驗(yàn)方法了。

Ethernet和CAN總線類似,所有節(jié)點(diǎn)對(duì)等,無(wú)主從之說(shuō),誰(shuí)都可以發(fā)起信息。由于沖突的檢測(cè),使得仲裁失敗的節(jié)點(diǎn)稍后重試,物理層完成,不需要軟件參與,因而給協(xié)議設(shè)計(jì)帶來(lái)了極大的便利。比如說(shuō),先前的那個(gè)問(wèn)題,一個(gè)廣播協(xié)議出去,不再像 Rs232/rs485那樣,再去一一查詢確認(rèn)。有問(wèn)題的設(shè)備直接上報(bào)問(wèn)題就好。大大的簡(jiǎn)便了問(wèn)題的處理。RS232/RS485的節(jié)點(diǎn)如果發(fā)生問(wèn)題,需要上報(bào),也只能等到主機(jī)點(diǎn)名時(shí)才能有機(jī)會(huì)上報(bào)。Ethernet/Can就不用了,發(fā)生問(wèn)題后,直接主動(dòng)上傳??梢源_保問(wèn)題和緊急情況的及時(shí)處理。如果Ethernet是基于TCP的協(xié)議,效率低了,但卻保證了很多特性,數(shù)據(jù)的順序到達(dá),可靠性等等。IP 層以下的協(xié)議有很大的問(wèn)題就是不能保證數(shù)據(jù)的順序到達(dá),多個(gè)路徑的長(zhǎng)短會(huì)影響協(xié)議到達(dá)的順序,有些系統(tǒng)在設(shè)計(jì)時(shí)為了效率,采用UDP或者M(jìn)AC層直接通訊。那么最好還是采用較為保守的策略,防止協(xié)議報(bào)文先后到達(dá)產(chǎn)生不必要的錯(cuò)誤。Ethernet物理層 帶有CRC32校驗(yàn),自己再做校驗(yàn)實(shí)在沒(méi)必要。

協(xié)議的效率是個(gè)較復(fù)雜的話題,以RS232為例,RS232如果1個(gè)起始位置,1個(gè)停止位置,沒(méi)有奇偶校驗(yàn)。那么發(fā)送一個(gè)字節(jié)需要10Bit,對(duì)于9600bps的波特率,1秒鐘最多傳輸960個(gè)字節(jié)。大約是1ms一個(gè)字節(jié)。如果停止位加長(zhǎng),協(xié)議一次性運(yùn)送的有用的字節(jié)數(shù)還要更低。除去必要的幀頭,幀尾,地址,校驗(yàn)信息,真正有用得信息除以總的總線上運(yùn)送的字節(jié)數(shù),就是協(xié)議的帶載能力。很顯然,如果我用多播和廣播,明顯地提高效率。對(duì)于RS232這種,廣播也許并不是個(gè)好的選擇,尤其是回頭確認(rèn)一遍。也許提高波特率是個(gè)不錯(cuò)的主意。這隨之而來(lái)的問(wèn)題是,1Mbps的通訊系統(tǒng),1Start,1stop, non-parity, 1個(gè)字節(jié)只需要10us,這么快的中斷不是普通的CPU能承受的。所以,可能需要DMA來(lái)接收。DMA 接收的話,就牽涉到變長(zhǎng)的協(xié)議和定長(zhǎng)的協(xié)議。變長(zhǎng)的協(xié)議要?jiǎng)討B(tài)的判斷是否收到一個(gè)完整的包,而定長(zhǎng)的協(xié)議,對(duì)于高速的RS232有無(wú)可比擬的優(yōu)勢(shì)。大大降低計(jì)算的復(fù)雜度。定長(zhǎng)的協(xié)議就牽涉到協(xié)議的長(zhǎng)度。我們一般把最頻繁出現(xiàn)的協(xié)議的長(zhǎng)度作為全部協(xié)議報(bào)文的長(zhǎng)度。對(duì)于超長(zhǎng)的協(xié)議,由于使用次數(shù)不多,拆成多條定長(zhǎng)協(xié)議吧報(bào)文完成。比如說(shuō),我們的系統(tǒng)控制命令長(zhǎng)度為所有協(xié)議的長(zhǎng)度,因?yàn)?0%的協(xié)議報(bào)文都是系統(tǒng)控制命令。而20%的報(bào)文是其他出現(xiàn)頻率較低的報(bào)文,如系統(tǒng)固件升級(jí)報(bào)文,本身固件的大小就很大,就算超長(zhǎng)的報(bào)文也不可能容納??吵膳c控制命令報(bào)文等同的長(zhǎng)度??此票容^零散,每包卻都有各自獨(dú)立性。都可以做單獨(dú)的報(bào)文發(fā)送,前后的耦合性降到最低,也就是說(shuō),雖然大協(xié)議被拆分成小的等長(zhǎng)協(xié)議報(bào)文,每個(gè)等長(zhǎng)報(bào)文在發(fā)送過(guò)程中出錯(cuò),可以單獨(dú)再發(fā)送,整個(gè)通信序列無(wú)需重置。通過(guò)合理的設(shè)計(jì),協(xié)議的效率自然而然的就被提升了。

Ethernet的設(shè)計(jì)相對(duì)寬松,其底層太強(qiáng)大了。很多工作都做了,所以,等長(zhǎng)不等長(zhǎng)對(duì)Ethernet系統(tǒng)無(wú)所謂。關(guān)鍵要解決Ethernet的通信模型問(wèn)題。如果是嵌入式服務(wù)器,TCP 保持半開(kāi)鏈接不能太耗費(fèi)資源。如果是UDP或者mac層的協(xié)議,需要對(duì)協(xié)議序列的先后到達(dá)順序進(jìn)行解耦,防止出現(xiàn)不必要的問(wèn)題。如果一個(gè)大協(xié)議包,需要拆成三個(gè)包發(fā)送,三個(gè)包順序任意無(wú)影響;任意包發(fā)生錯(cuò)誤,只需要將錯(cuò)誤包重發(fā)成功即可。Ethernet由于速度高,協(xié)議帶載能力可以得到很好的補(bǔ)充。另外,由于Ethernet是一個(gè)完美支持多播和廣播的網(wǎng)絡(luò),實(shí)際中使用廣播太多造成了廣播風(fēng)暴,導(dǎo)致網(wǎng)絡(luò)性能急劇下降,所以現(xiàn)在分了虛擬局域網(wǎng),就是為了抑制廣播風(fēng)暴,提高效率。實(shí)際使用中還是要盡量的合理設(shè)計(jì)系統(tǒng),避免過(guò)多的廣播協(xié)議的使用,以免拖慢整個(gè)網(wǎng)絡(luò)系統(tǒng)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉