999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種改進(jìn)型SPI高可靠通信機(jī)制設(shè)計(jì)*

2014-08-12 08:46:15韋小剛
關(guān)鍵詞:嵌入式機(jī)制設(shè)備

韋小剛

(1. 國網(wǎng)電力科學(xué)研究院 南京 210003;2. 南瑞集團(tuán)公司)

一種改進(jìn)型SPI高可靠通信機(jī)制設(shè)計(jì)*

韋小剛1,2

(1. 國網(wǎng)電力科學(xué)研究院 南京 210003;2. 南瑞集團(tuán)公司)

SPI通信作為一種全雙工高速通信方式,電路實(shí)現(xiàn)簡(jiǎn)單、占用資源少,在工業(yè)嵌入式系統(tǒng)中應(yīng)用十分廣泛。但是,通信過程中沒有握手、應(yīng)答和數(shù)據(jù)校驗(yàn),影響了系統(tǒng)通信的可靠性。本文通過對(duì)嵌入式系統(tǒng)中的SPI通信機(jī)制的研究與分析,設(shè)計(jì)了一種高可靠性的SPI通信機(jī)制。這種SPI通信機(jī)制的高可靠性通過系統(tǒng)長期的現(xiàn)場(chǎng)應(yīng)用得到了驗(yàn)證。

SPI接口;可靠性;改進(jìn);外設(shè)

引 言

串行外圍設(shè)備(SPI)接口是由Motorola公司開發(fā)的,用來在微控制器MCU和外圍設(shè)備芯片之間以串行方式實(shí)現(xiàn)數(shù)據(jù)交換的,低成本、易使用的接口。其中,外圍設(shè)備包括顯示驅(qū)動(dòng)器、網(wǎng)絡(luò)控制器、A/D轉(zhuǎn)換器、內(nèi)存及微控制器MCU(如DSP、ARM、加密芯片等)等。與標(biāo)準(zhǔn)的串行接口不同,SPI是一個(gè)同步協(xié)議接口,全雙工通信,所有的傳輸都參照一個(gè)共同的時(shí)鐘,這個(gè)同步時(shí)鐘信號(hào)由主端(Master)產(chǎn)生。接收數(shù)據(jù)的外設(shè)使用時(shí)鐘對(duì)串行比特流的接收進(jìn)行同步化[1-2]。

SPI通信采用主從方式進(jìn)行,一般情況下,通過4根線完成通信,分別為兩根數(shù)據(jù)線(主輸出從輸入MOSI和主輸入從輸出MISO)、一根時(shí)鐘線(SCK)和一根片選線(CS)。其中,時(shí)鐘信號(hào)SCK由主端發(fā)出,片選信號(hào)用于由主設(shè)備控制外設(shè)芯片使能。

1 SPI通信機(jī)制優(yōu)缺點(diǎn)的分析

SPI通信示意圖如圖1所示。微控制器MCU采用SPI通信時(shí),片選信號(hào)CS(一般情況下為低電平)使能外圍設(shè)備。主端提供時(shí)鐘脈沖SCK,數(shù)據(jù)以串行方式傳輸,主端數(shù)據(jù)輸出通過MOSI,而數(shù)據(jù)輸入通過MISO,從端數(shù)據(jù)輸出通過MISO,而數(shù)據(jù)輸入通過MOSI,傳輸一位數(shù)據(jù)需要一個(gè)時(shí)鐘信號(hào)SCK,這樣傳輸一個(gè)字節(jié)數(shù)據(jù)至少需要8個(gè)時(shí)鐘信號(hào)SCK。

圖1 SPI通信示意圖

由以上SPI通信過程的描述可知,時(shí)鐘信號(hào)SCK完全由主端設(shè)備控制。標(biāo)準(zhǔn)的串行通信一次連續(xù)傳輸至少8位數(shù)據(jù),而SPI通信因?yàn)闀r(shí)鐘信號(hào)SCK完全由主端設(shè)備控制,所以通信過程中數(shù)據(jù)是可以一位一位傳輸?shù)模魶]有主端設(shè)備的時(shí)鐘跳變SCK,通信就會(huì)暫停,這樣主端設(shè)備就可以通過控制時(shí)鐘信號(hào)SCK進(jìn)而控制整個(gè)數(shù)據(jù)的通信,這是SPI通信的一個(gè)優(yōu)點(diǎn)[3]。SPI通信還有個(gè)優(yōu)點(diǎn),即數(shù)據(jù)輸出和數(shù)據(jù)輸入彼此獨(dú)立,采用不同的信號(hào)線,可以同時(shí)完成數(shù)據(jù)的輸入與輸出,實(shí)現(xiàn)全雙工高速通信。此外,相對(duì)于ISO7816通信和I2C總線通信等其他接口通信方式,SPI通信實(shí)現(xiàn)起來較為簡(jiǎn)單,就是主端和從端的8位SPI寄存器進(jìn)行數(shù)據(jù)的傳輸。

由于SPI通信有著諸多的優(yōu)點(diǎn),所以工業(yè)嵌入式系統(tǒng)開發(fā)中用到的很多芯片都支持SPI接口。但是,SPI通信的缺點(diǎn)也很明顯,通信過程中沒有握手,沒有應(yīng)答,沒有數(shù)據(jù)校驗(yàn)。SPI主端設(shè)備向從端設(shè)備發(fā)出數(shù)據(jù)后,從端設(shè)備有沒有收到數(shù)據(jù)?SPI從端設(shè)備收到的數(shù)據(jù)是否與SPI主端設(shè)備發(fā)出的數(shù)據(jù)完全一致?如果不一致,SPI主端設(shè)備是否應(yīng)該向從端重傳數(shù)據(jù)?這些都是不得而知的。

通信可靠性對(duì)于工業(yè)嵌入式系統(tǒng)來說至關(guān)重要,直接決定工業(yè)嵌入式系統(tǒng)是否有應(yīng)用價(jià)值,一個(gè)可靠性欠缺的工業(yè)嵌入式系統(tǒng)可能會(huì)給企業(yè)、社會(huì)乃至國家?guī)砟蟮膿p失。由此可知,SPI通信機(jī)制完全有必要改進(jìn)。

2 改進(jìn)型SPI通信機(jī)制的設(shè)計(jì)

SPI通信過程有必要加入握手、應(yīng)答和數(shù)據(jù)校驗(yàn)等環(huán)節(jié),以保證SPI主端和從端通信的可靠性。一般來說,對(duì)任何機(jī)制的改進(jìn)都不會(huì)是憑空想象,都是建立在原型的基礎(chǔ)之上。在SPI通信機(jī)制改進(jìn)時(shí),筆者參考了TCP連接的三次握手機(jī)制[4]和ISO7816協(xié)議的應(yīng)答機(jī)制[5-6]。

2.1 通信流程

改進(jìn)型SPI通信的流程如圖2所示,SPI通信由主端控制,主端通過片選引腳使能從端并向從端發(fā)出時(shí)鐘脈沖,從端以應(yīng)答的方式與主端進(jìn)行交互,過程如下:

① SPI主端向從端發(fā)出命令頭,該命令頭有5個(gè)字節(jié);

② SPI從端向主端發(fā)出應(yīng)答數(shù)據(jù),該數(shù)據(jù)為之前收到的命令頭的第二個(gè)字節(jié)(標(biāo)志字節(jié));

③ SPI主端向從端發(fā)出數(shù)據(jù)幀,該數(shù)據(jù)幀由幀頭、實(shí)際數(shù)據(jù)、校驗(yàn)值及幀尾表示;

④ SPI從端向主端發(fā)出應(yīng)答數(shù)據(jù),該數(shù)據(jù)為標(biāo)志字節(jié)、數(shù)據(jù)長度、實(shí)際數(shù)據(jù)、校驗(yàn)值及狀態(tài)字(兩個(gè)字節(jié))組成。

圖2 SPI通信流程(無數(shù)據(jù)重傳環(huán)節(jié))

以上過程中,步驟①和②可以看作是SPI通信主端對(duì)從端就緒狀態(tài)的探測(cè),步驟③和④才是真正的數(shù)據(jù)交互。步驟①、②中,當(dāng)SPI從端未就緒時(shí),SPI主端無法收到從端的應(yīng)答,那么SPI主端就需要進(jìn)行超時(shí)重傳,重新傳送之前的命令頭,重傳次數(shù)達(dá)到上限后就不再重傳,否則會(huì)浪費(fèi)系統(tǒng)資源。步驟③、④中,SPI主端會(huì)對(duì)從端發(fā)過來應(yīng)答數(shù)據(jù)中的實(shí)際數(shù)據(jù)進(jìn)行校驗(yàn)并得出一個(gè)校驗(yàn)值,將該校驗(yàn)值與從端發(fā)過來的應(yīng)答數(shù)據(jù)中的校驗(yàn)值進(jìn)行比對(duì),如果不一致,那么主端有必要進(jìn)行重傳,如圖3所示。

圖3 SPI通信流程(有數(shù)據(jù)重傳環(huán)節(jié))

2.2 通信數(shù)據(jù)格式

SPI通信過程中,主端發(fā)給從端的數(shù)據(jù)分為兩類,即命令頭和數(shù)據(jù)幀:

① 命令頭。由ISO7816協(xié)議中的APDU(Application Protocol Data Unit)命令格式組成,即CLA、INS、P1、P2、Len[5-6]。

② 數(shù)據(jù)幀。一個(gè)完整的數(shù)據(jù)幀由幀頭、實(shí)際數(shù)據(jù)、校驗(yàn)值及幀尾組成,如表1所列。

表1 SPI通信數(shù)據(jù)幀的組成

SPI通信過程中,從端給主端發(fā)出的應(yīng)答有兩種:一種是主端探測(cè)從端時(shí)從端響應(yīng)給主端的標(biāo)志,另一種就是實(shí)際通信中的應(yīng)答,這個(gè)完整的應(yīng)答報(bào)文由標(biāo)志字節(jié)、數(shù)據(jù)長度、實(shí)際數(shù)據(jù)、校驗(yàn)值及狀態(tài)字組成,如表2所列。

表2 SPI通信應(yīng)答報(bào)文的組成

3 改進(jìn)型SPI通信機(jī)制的實(shí)現(xiàn)

按照上述的流程,SPI通信過程中主端的代碼如下所示,讀者可以依此寫出SPI從端的代碼。

int SpiMaster(unsigned char *rxbuf, unsigned char *in, int len, unsigned char *out){

int i = 0, cnt = 0;

unsigned char cmd[5] = {0xA0, 0xE0, 0x80, 0x00, len};

CMD_RESEND1:

SendCmdHeader(cmd, rxbuf); //發(fā)送命令頭

RcvINS(rxbuf,cmd[1]); //接收標(biāo)志字節(jié)

if(errorTimeout){ //超時(shí)全局變量

//超時(shí)重傳,超過3次則結(jié)束

errorTimeout = 0;

if(cnt<3){

cnt++;

goto CMD_RESEND1;

}

else{

printf("Timeout ERROR! ");

return -1;

}

}

cnt = 0;

CMD_RESEND2:

SendData(cmd, rxbuf+1, in, len);//發(fā)送實(shí)際數(shù)據(jù)及校驗(yàn)碼

RcvINS(cmd,rxbuf,cmd[1]); //接收標(biāo)志字節(jié)

RcvLenL(cmd,rxbuf+1, cmd[3]*0x0100+cmd[4]+1);

//接收長度

RcvData(cmd, rxbuf+3); //接收實(shí)際數(shù)據(jù)及校驗(yàn)碼

RcvSW(cmd, rxbuf+3+len+1, 0x90); //接收狀態(tài)字

//計(jì)算接收到數(shù)據(jù)的CRC校驗(yàn)值

if(get_crc7(rxbuf+3, rxbuf[1]*0x100+rxbuf[2]-1)

!= rxbuf[rxbuf[1]*0x100+rxbuf[2]+1+1]){

//CRC校驗(yàn)值比對(duì),不一致,則命令重傳,超過3次,結(jié)束

if(cnt<3){

cnt++;

goto CMD_RESEND2;

}

else{

printf("CRC check ERROR! ");

return -1;

}

}

for(i=0; i< len; i++){

out[i]=rxbuf[i+3];

}

return 0;

}

結(jié) 語

[1] Motorola.SPI Block Guide V03.06. Original Release Date: 21 JAN 2000Revised: 04 FEB,2003.

[2] 馬鳴錦,蔣烈輝,杜威,等. 基于M-CORE微控制器的嵌入式系統(tǒng)[M]. 北京:國防工業(yè)出版社,2003.

[3] 喬贊麗. 高可靠性SPI通信機(jī)制及其應(yīng)用探討[J].信息通信,2013(8):202-203.

[4] TCP/IP協(xié)議原理與應(yīng)用 [M].3版. 張長富, 等譯. 北京: 清華大學(xué)出版社, 2009.

[5] ISO/IEC 7816-3 —2006 Smart Card Standard, Part3 Electronic Signals and Transmission Protocols[S].

[6] ISO/IEC 7816-4—2005 Smart Card Standard, Part4 Interindustry Commands for Interchange[S].

韋小剛(碩士),主要研究方向?yàn)殡娏ο到y(tǒng)信息網(wǎng)絡(luò)安全。

Design of Improved High-reliability Communication Mechanism with SPI

Wei Xiaogang1,2

(1.State Grid Electric Power Research Institute, Nanjing 210003, China;2.Mary Group Corporation)

a full-duplex high-speed communication mode,SPI has simple circuit and low resource consumption,and it is widely used in embedded systems of industry. However, there are no handshake, response and data checking in communication so that the reliability of system communication is reduced. By the research and analysis of SPI communication mechanism in embedded systems, a high-reliability SPI communication mechanism is designed, which is validated in long-term practical applications.

SPI interface;reliability;improvement;peripheral equipment

* 項(xiàng)目來源:國網(wǎng)電力科學(xué)研究院智能電網(wǎng)終端安全防護(hù)項(xiàng)目。

TP393.8

A

2014-02-12)

猜你喜歡
嵌入式機(jī)制設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
自制力是一種很好的篩選機(jī)制
文苑(2018年21期)2018-11-09 01:23:06
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發(fā)平臺(tái)
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
破除舊機(jī)制要分步推進(jìn)
注重機(jī)制的相互配合
原來他們都是可穿戴設(shè)備
打基礎(chǔ) 抓機(jī)制 顯成效
中國火炬(2014年4期)2014-07-24 14:22:19
主站蜘蛛池模板: 亚洲精品制服丝袜二区| 狠狠色综合久久狠狠色综合| 亚洲天堂久久久| 欧美三级日韩三级| 亚洲无码在线午夜电影| 亚洲精品va| 91色在线观看| 国产欧美日韩另类| 成人免费网站久久久| 中文字幕久久亚洲一区| 亚洲国产日韩视频观看| 欧美精品二区| 国产在线91在线电影| 久青草免费视频| 久久国产热| 黄色三级网站免费| 亚洲午夜福利在线| 在线观看视频一区二区| 区国产精品搜索视频| 少妇精品网站| 国产精品一区二区在线播放| 久久中文字幕2021精品| 91毛片网| 中文字幕第4页| 国产精品99一区不卡| 丁香五月激情图片| 波多野结衣AV无码久久一区| 亚洲成a人片在线观看88| 亚洲国产成人麻豆精品| 欧美成人午夜视频免看| 伊人欧美在线| 日韩在线观看网站| 色综合五月| 色亚洲激情综合精品无码视频| 日本高清在线看免费观看| 三级视频中文字幕| 国内精品久久久久久久久久影视| 亚洲精品你懂的| 午夜性爽视频男人的天堂| 强奷白丝美女在线观看| 久久久久88色偷偷| 欧美人与性动交a欧美精品| 亚洲天堂网2014| 亚洲国产精品久久久久秋霞影院 | 无码一区中文字幕| 99中文字幕亚洲一区二区| 国产精品视频导航| 亚洲AⅤ无码国产精品| 亚洲精品免费网站| 在线观看精品自拍视频| 亚洲综合片| 98超碰在线观看| AV在线天堂进入| 国产精品女同一区三区五区| 91久久偷偷做嫩草影院电| 美女亚洲一区| 国产麻豆91网在线看| 中文字幕在线免费看| 国产特级毛片aaaaaa| 超级碰免费视频91| a在线亚洲男人的天堂试看| 欧美一级黄片一区2区| 欧美日韩导航| 日本a∨在线观看| 26uuu国产精品视频| 四虎精品免费久久| 免费A级毛片无码免费视频| 欧美另类第一页| 日本草草视频在线观看| 91在线播放国产| 宅男噜噜噜66国产在线观看| 国产精品福利尤物youwu| 精品夜恋影院亚洲欧洲| 欧美亚洲国产日韩电影在线| 浮力影院国产第一页| 日韩欧美国产另类| 成人91在线| 在线中文字幕网| 91av国产在线| 性色一区| 超碰aⅴ人人做人人爽欧美 | 性做久久久久久久免费看|