第一篇:SDIO協(xié)議簡介專題
SDIO卡
SDIO卡是在SD內(nèi)存卡接口的基礎(chǔ)上發(fā)展起來的接口,SDIO接口兼容以前的SD內(nèi)存卡,并且可以連接SDIO接口的設(shè)備,目前根據(jù)SDIO協(xié)議的SPEC,SDIO接口支持的設(shè)備總類有藍牙,網(wǎng)卡,電視卡等。
SDIO協(xié)議是由SD卡的協(xié)議演化升級而來的,很多地方保留了SD卡的讀寫協(xié)議,同時SDIO協(xié)議又在SD卡協(xié)議之上添加了CMD52和CMD53命令。由于這個,SDIO和SD卡規(guī)范間的一個重要區(qū)別是增加了低速標(biāo)準(zhǔn),低速卡的目標(biāo)應(yīng)用是以最小的硬件開始來支持低速I/O能力。低速卡支持類似調(diào)制解調(diào)器,條形碼掃描儀和GPS接收器等應(yīng)用。高速卡支持網(wǎng)卡,電視卡還有“組合”卡等,組合卡指的是存儲器+SDIO。
SDIO和SD卡的SPEC間的又一個重要區(qū)別是增加了低速標(biāo)準(zhǔn)。SDIO卡只需要SPI和1位SD傳輸模式。低速卡的目標(biāo)應(yīng)用是以最小的硬件開支來支持低速I/O能力,低速卡支持類似MODEM,條形掃描儀和GPS接收器等應(yīng)用。對組合卡來說,全速和4BIT操作對卡內(nèi)存儲器和SDIO部分都是強制要求的。
在非組合卡的SDIO設(shè)備里,其最高速度要只有達到25M,而組合卡的最高速度同SD卡的最高速度一樣,要高于25M。
SDIO總線
SDIO總線和USB總線類似,SDIO總線也有兩端,其中一端是主機(HOST)端,另一端是設(shè)備端(DEVICE),采用HOST-DEVICE這樣的設(shè)計是為了簡化DEVICE的設(shè)計,所有的通信都是由HOST端發(fā)出命令開始的。在DEVICE端只要能解溪HOST的命令,就可以同HOST進行通信了。
SDIO的HOST可以連接多個DEVICE,如下圖所示:
這個是同SD的總線一樣的,其中有如下的幾種信號
1.CLK信號:HOST給DEVICE的時鐘信號.2.CMD信號:雙向的信號,用于傳送命令和反應(yīng)。
3.DAT0-DAT3 信號:四條用于傳送的數(shù)據(jù)線。
4.VDD信號:電源信號。
5.VSS1,VSS2:電源地信號。
在SDIO總線定義中,DAT1信號線復(fù)用為中斷線。在SDIO的1BIT模式下DAT0用來傳輸數(shù)據(jù),DAT1用作中斷線。在SDIO的4BIT模式下DAT0-DAT3用來傳輸數(shù)據(jù),其中DAT1復(fù)用作中斷線。
SDIO命令:
SDIO總線上都是HOST端發(fā)起請求,然后DEVICE端回應(yīng)請求。其中請求和回應(yīng)中會數(shù)據(jù)信息。
1.Command:用于開始傳輸?shù)拿?,是由HOST端發(fā)往DEVICE端的。其中命令是通過CMD信號線傳送的。
2.Response:回應(yīng)是DEVICE返回的HOST的命令,作為Command的回應(yīng)。也是通過 CMD線傳送的。
3.Data:數(shù)據(jù)是雙向的傳送的??梢栽O(shè)置為1線模式,也可以設(shè)置為4線模式。數(shù)據(jù)是通過DAT0-DAT3信號線傳輸?shù)摹?/p>
SDIO的每次操作都是由HOST在CMD線上發(fā)起一個CMD,對于有的CMD,DEVICE需要返回Response,有的則不需要。
對于讀命令,首先HOST會向DEVICE發(fā)送命令,緊接著DEVICE會返回一個握手信號,此時,當(dāng)HOST收到回應(yīng)的握手信號后,會將數(shù)據(jù)放在4位的數(shù)據(jù)線上,在傳送數(shù)據(jù)的同時會跟隨著CRC校驗碼。當(dāng)整個讀傳送完畢后,HOST會再次發(fā)送一個命令,通知DEVICE操作完畢,DEVICE同時會返回一個響應(yīng)。
對于寫命令,首先HOST會向DEVICE發(fā)送命令,緊接著DEVICE會返回一個握手信號,此時,當(dāng)HOST收到回應(yīng)的握手信號后,會將數(shù)據(jù)放在4位的數(shù)據(jù)線上,在傳送數(shù)據(jù)的同時會跟隨著CRC校驗碼。當(dāng)整個寫傳送完畢后,HOST會再次發(fā)送一個命令,通知DEVICE操作完畢,DEVICE同時會返回一個響應(yīng)。
SDIO的寄存器:
SDIO卡的設(shè)備驅(qū)動80%的任務(wù)就是操作SDIO卡上的有關(guān)寄存器。SDIO卡最多允許有7個功能(function),這個同其功能號是對應(yīng)的(0~7),每個功能都對應(yīng)一個128K字節(jié)大小的寄存器,這個見下面的圖。功能號之所以取值范圍是1~7,而沒有包含0,是因為功能0并不代表真正的功能,而代表CIA寄存器,即Common I/O Area,這個紀(jì)錄著SDIO卡的一些基本信息和特性,并且可以改寫這些寄存器。其中地址0x1000~0x17fff是SDIO卡的CIS區(qū)域,就是基本信息區(qū)域,Common Information Structure。初始化的時候讀取并配對SDIO設(shè)備。
這些寄存器的詳細分區(qū)已經(jīng)其對應(yīng)的功能,在開發(fā)過程中都是需要仔細研讀的,這些都在協(xié)議的SPEC中都有詳細說明,這里就不在羅索了。
CMD52命令:
SDIO設(shè)備為了和SD內(nèi)存卡兼容,SD卡所有Command和Response完全兼容,同時加入了一些新的Command和Response。例如,初始化SD內(nèi)存卡使用ACMD41,而SDIO卡設(shè)備則用CMD5通知DEVICE進行初始化。
但二者最重要的區(qū)別是,SDIO卡比SD內(nèi)存卡多了CMD52和CMD53命令,這兩個命令可以方便的訪問某個功能的某個地址寄存器。
CMD52命令是IO_RW_DIRECT命令的簡稱,其命令格式如下
首先第一位為0,表明是起始位,第二位為傳輸方向,這里為1,代表方向為HOST向DEVICE設(shè)備傳送,其后6位為命令號,這里是110100b,用十進制表示為52,CMD52的名字也由此而來。緊接著是讀寫標(biāo)志位。
然后是操作的功能號。也就是function number。如果為0則指示為CCCR寄存器組。緊接著是寄存器地址,用17指示,由于功能寄存器有128K地址,17位正好能尋址。
再下來8位Write data or Staff Bits的意思是說,如果當(dāng)前為寫操作,則為數(shù)據(jù),否則8位為填充位。無意義。
最后7位為CRC校驗碼。最后一位為結(jié)束位0。
對于CMD52的Response是48位,命令格式如下:
總結(jié)下,CMD52是由HOST發(fā)往DEVICE的,它必須有DEVICE返回來的Response。CMD52不需要占用DAT線,讀寫的數(shù)據(jù)是通過CMD52或者Response來傳送。每次CMD52只能讀或者寫一個byte.
CMD53命令:
CMD52每次只能讀寫一個字節(jié),因為有了CMD53對讀寫進行了擴展,CMD53允許每次讀寫多個字節(jié)或者多個塊(BLOCK)。CMD53的命令格式如下:
第一位是1,為開始位,然后是一位方向位,總是1,代表方向為HOST向DEVICE設(shè)備傳送,其后6位為命令號,這里是110101b,用十進制表示為53,CMD53的名字也由此而來。
然后是1位的讀寫標(biāo)志。接著是3位功能號,這個同CMD52都是相同的。Block Mode如果1代表是塊傳輸模式,否則為字節(jié)傳輸模式。
OP Code為操作位,如果是0,代表數(shù)據(jù)往固定的位置讀寫,如果1代表是地質(zhì)增量讀寫。例如,對地址0固定讀寫16個字節(jié),相當(dāng)于16次讀寫的地址0,而對地址0增量讀寫16個字節(jié),相當(dāng)于讀寫0~15地址的數(shù)據(jù)。
然后是17位的地址寄存器,可以尋址到128K字節(jié)的地址,然后是9位的讀寫的計數(shù),對于字節(jié)讀取,讀寫大小就是這個計數(shù),而對于塊讀寫,讀寫的大小是計數(shù)乘以塊的大小。隨后的7位為CRC校驗碼。最后一位為1。
當(dāng)讀寫操作是塊操作的時候,塊的大小是可以通過設(shè)置FBR中的相關(guān)寄存器來設(shè)置。
同CMD52命令不同的是,CMD53沒有返回的命令的,這里判斷是否DEVICE設(shè)備讀寫完畢是需要驅(qū)動里面自己判斷的,一般有2個方法,1.設(shè)置相應(yīng)的讀寫完畢中斷。如果DEVICE設(shè)備讀寫完畢,則對HOST設(shè)備發(fā)送中斷。2.HOST設(shè)備主動查詢DEVICE設(shè)備是否讀寫完畢,可以通過CMD命令是否有返回來判斷是否DEVICE是否讀寫完畢。
轉(zhuǎn)自:http://blog.csdn.net/tanxs001/archive/2010/12/22/6091320.aspx
第二篇:SDIO小結(jié)20141018
SDIO
SDIO(Input/Output)是一種IO接口規(guī)范。目前,其最主要用途是為帶有SD卡槽的設(shè)備進行外設(shè)功能擴展。SDIO卡是一種IO外設(shè),而不是Memory。SDIO卡外形與SD卡一致,可直接插入SD卡槽中。
一個完整的SDIO控制系統(tǒng)包括:SDIO/SD/MMC卡、主控制器硬件層,以及由主控制器驅(qū)動、功能卡相關(guān)驅(qū)動、頂層應(yīng)用程序組成的軟件部分等。SDIO主控制器介于片上系統(tǒng)總線和外設(shè)卡之間,實現(xiàn)了系統(tǒng)總線信號到SD總線信號的轉(zhuǎn)化,CPU對接在SDIO主控制器上的外設(shè)的操作只要符合APB的時序要求,而底層的細節(jié)處理交給SDIO主控制器來完成。SDIO主控制器的主要功能包括:控制卡的讀/寫時序、命令生成與發(fā)送、響應(yīng)接收與分析、數(shù)據(jù)發(fā)送與接收、硬件中斷的處理、時鐘域功耗的控制(主控制器必須提供頻率可配置的時鐘,因為外設(shè)卡的時鐘由主控制器通過時鐘線提供,需能匹配不同種類的外設(shè)卡;同時時鐘與功耗有著直接關(guān)聯(lián))等。
目前市場上有多種SDIO接口的外設(shè),比如SDIO藍牙,SDIO GPS,SDIO無線網(wǎng)卡,SDIO移動電視卡等。這些卡底部帶有和SD卡外形一致的插頭,可直接插入SDIO卡槽(即為SD卡槽)的智能手機、PDA中,即可為這些手機、PDA帶來豐富的擴展功能。用戶可根據(jù)實際需要,靈活選擇外設(shè)擴展的種類、品牌和性能等級。SDIO已為成為數(shù)碼產(chǎn)品外設(shè)功能擴展的標(biāo)準(zhǔn)接口。
SDIO卡插入帶有標(biāo)準(zhǔn)SD卡槽的設(shè)備后,如果該設(shè)備不支持SDIO,SDIO卡不會對SD卡的命令作出響應(yīng),處于非激活狀態(tài),不影響設(shè)備的正常工作;如果該設(shè)備支持SDIO卡,則按照規(guī)范的要求激活SDIO卡。
SDIO卡允許設(shè)備按IO的方式直接對寄存器進行訪問,無須執(zhí)行FAT文件結(jié)構(gòu)或數(shù)據(jù)sector等復(fù)雜操作。此外,SDIO卡還能向設(shè)備發(fā)出中斷,這是與SD memory卡的本質(zhì)區(qū)別。
SDIO總線
SDIO總線和USB總線類似,SDIO總線也有兩端,其中一端是主機(HOST)端,另一端是設(shè)備端(DEVICE),采用HOST-DEVICE這樣的設(shè)計是為了簡化DEVICE的設(shè)計,所有的通信都是由HOST端發(fā)出命令開始的。在DEVICE端只要能解析HOST的命令,就可以同HOST進行通信了。
SD總線上的通信基于3種格式的比特流:命令包、響應(yīng)包和數(shù)據(jù)包??刂破饕凑誗DIO協(xié)議的格式給命令添加起始位、標(biāo)志位、CRC校驗位、停止位等。命令在寫入命令寄存器后,通過CMD線傳給外設(shè)卡,卡收到命令后在CMD線上返回特定的響應(yīng)到主控制器,主控制器把響應(yīng)存放到響應(yīng)寄存器,用來對卡狀態(tài)進行分析判斷。
SDIO的HOST可以連接多個DEVICE,這個是同SD的總線一樣的,其中有如下的幾種信號 1.CLK信號:HOST給DEVICE的時鐘信號.2.CMD信號:雙向的信號,用于傳送命令和反應(yīng)。
3.DAT0-DAT3 信號:四條用于傳送的數(shù)據(jù)線,支持1位或4位兩種數(shù)據(jù)寬度的傳輸。4.VDD信號:電源信號。5.VSS1,VSS2:電源地信號。在SDIO總線定義中,DAT1信號線復(fù)用為中斷線。在SDIO的1BIT模式下DAT0用來傳輸數(shù)據(jù),DAT1用作中斷線。在SDIO的4BIT模式下DAT0-DAT3用來傳輸數(shù)據(jù),其中DAT1復(fù)用作中斷線。
SDIO命令:
SDIO總線上都是HOST端發(fā)起請求,然后DEVICE端回應(yīng)請求。其中請求和回應(yīng)中會數(shù)據(jù)信息。
1.Command:用于開始傳輸?shù)拿?,是由HOST端發(fā)往DEVICE端的。其中命令是通過CMD信號線傳送的。
2.Response:回應(yīng)是DEVICE返回的HOST的命令,作為Command的回應(yīng)。也是通過CMD線傳送的。
3.Data:數(shù)據(jù)是雙向的傳送的??梢栽O(shè)置為1線模式,也可以設(shè)置為4線模式。數(shù)據(jù)是通過DAT0-DAT3信號線傳輸?shù)摹?/p>
SDIO的每次操作都是由HOST在CMD線上發(fā)起一個CMD,對于有的CMD,DEVICE需要返回Response,有的則不需要。對于讀命令,首先HOST會向DEVICE發(fā)送命令,緊接著DEVICE會返回一個握手信號,此時,當(dāng)HOST收到回應(yīng)的握手信號后,會將數(shù)據(jù)放在4位的數(shù)據(jù)線上,在傳送數(shù)據(jù)的同時會跟隨著CRC校驗碼。當(dāng)整個讀傳送完畢后,HOST會再次發(fā)送一個命令,通知DEVICE操作完畢,DEVICE同時會返回一個響應(yīng)。對于寫命令,首先HOST會向DEVICE發(fā)送命令,緊接著DEVICE會返回一個握手信號,此時,當(dāng)HOST收到回應(yīng)的握手信號后,會將數(shù)據(jù)放在4位的數(shù)據(jù)線上,在傳送數(shù)據(jù)的同時會跟隨著CRC校驗碼。當(dāng)整個寫傳送完畢后,HOST會再次發(fā)送一個命令,通知DEVICE操作完畢,DEVICE同時會返回一個響應(yīng)。
SDIO的寄存器:
SDIO卡的設(shè)備驅(qū)動80%的任務(wù)就是操作SDIO卡上的有關(guān)寄存器。SDIO卡最多允許有7個功能(function),這個同其功能號是對應(yīng)的(1~7),每個功能都對應(yīng)一個128K字節(jié)大小的寄存器,這個見下面的圖。功能號之所以取值范圍是1~7,而沒有包含0,是因為功能0并不代表真正的功能,而代表CIA寄存器,即Common I/O Area,這個紀(jì)錄著SDIO卡的一些基本信息和特性,并且可以改寫這些寄存器。其中地址0x1000~0x17fff是SDIO卡的CIS區(qū)域,就是基本信息區(qū)域,Common Information Structure。初始化的時候讀取并配對SDIO設(shè)備。
SDIO與SD接口的區(qū)別
SDIO協(xié)議是由SD卡的協(xié)議演化升級而來的,很多地方保留了SD卡的讀寫協(xié)議,同時SDIO協(xié)議又在SD卡協(xié)議之上添加了CMD52和CMD53命令。由于這個,SDIO和SD卡規(guī)范間的一個重要區(qū)別是增加了低速標(biāo)準(zhǔn),低速卡的目標(biāo)應(yīng)用是以最小的硬件開始來支持低速I/O能力。低速卡支持類似調(diào)制解調(diào)器,條形碼掃描儀和GPS接收器等應(yīng)用。高速卡支持網(wǎng)卡,電視卡還有“組合”卡等,組合卡指的是存儲器+SDIO。在非組合卡的SDIO設(shè)備里,其最高速度要只有達到25M,而組合卡的最高速度同SD卡的最高速度一樣,要高于25M。
此外,SD卡和SDIO卡還在一些commands, R6 register, reset, bus width, card detect resistor, data transfer block sizes, data transfer abort, some fixed sd memory registers有差異,具體差異可查閱simplified sdio card spec.pdf第四章4.2~4.10.
第三篇:RS232-RS458-RS422通訊協(xié)議簡介
原文地址:RS232、RS485、RS422通訊協(xié)議簡介作者:黃花有主
一、什么是RS-232 接口?
(1)RS-232 的歷史和作用
在串行通訊時,要求通訊雙方都采用一個標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來進行通訊。RS-232-C 接口(又稱EIA RS-232-C)是目前最常用的一種串行通訊接口。
(“RS-232-C”中的“-C”只不過表示RS-232 的版本,所以與“RS-232”簡稱是一樣的)它是在1970 年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計算機終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”該標(biāo)準(zhǔn)規(guī)定采用一個25 個腳的DB-25 連接器,對連接器的每個引腳的信號內(nèi)容加以規(guī)定,還對各種信號的電平加以規(guī)定。后來IBM的PC機將RS232 簡化成了DB-9 連接器,從而成為事實標(biāo)準(zhǔn)。而工業(yè)控制的RS-232口一般只使用RXD、TXD、GND 三條線。
(2)RS-232 接口的電氣特征
在RS-232-C 中任何一條信號線的電壓均為負邏輯關(guān)系。即:邏輯“1”為-3 到-15V;邏輯“0”為+3 到+15V。
RS-232-C 最常用的9 條引線的信號內(nèi)容如下所示
DB-9123456789
DB-2583220764522
定義DCD RXD TXD DTR GND DSR RTD CTS RI
(3)RS-232 接口的物理結(jié)構(gòu)
RS-232-C 接口連接器一般使用型號為DB-9 插頭座,通常插頭在DCE 端,插座在DTE端。PC 機的RS-232 口為9 芯針插座。一些設(shè)備與PC 機連接的RS-232 接口,因為不使用對方的傳送控制信號,只需要三條接口線,即“發(fā)送數(shù)據(jù)TXD”、“接收數(shù)據(jù)RXD”和“信號地GND”。RS-232 傳輸線采用屏蔽雙絞線。
(4)RS-232 傳輸電纜長度
由RS-232-C 標(biāo)準(zhǔn)規(guī)定在碼元畸變小于4%的情況下,傳輸電纜長度應(yīng)為50 英尺,其實這個4%的碼元畸變是很保守的,在實際應(yīng)用中,約有99%的用戶是按碼元畸變10%-20%的范圍工作的,所以實際使用中最大距離會遠超過50 英尺,美國DEC 公司曾規(guī)定容許畸變?yōu)?0%而得出下面實驗結(jié)果。其中1 號電纜為屏蔽電纜,型號為DECP.NO.9107723 內(nèi)有三對雙絞線,每對有22#AWG 組成,其外覆以屏蔽線。2 號電纜為不帶屏蔽的電纜。型號為DECP.NO.9105856-04 是22#AWG 的四芯電纜。
DEC 公司的實驗結(jié)果
波特率bps 1 號電纜傳輸距離(米)2 號電纜傳輸距離(米)
1500 900
300 1500 900
1200 900 900
2400 300 150
4800 300 7
59600 75 75
經(jīng)過許多年來RS-232 器件以及通信技術(shù)的改進,RS-232 的通信距離已經(jīng)大大增加。RS-232 增強器可以將普通的RS-232 口的通信距離延長到1000 米。
二、什么是RS-485 接口?
1、RS-485 的電氣特性:發(fā)送端:邏輯“1”以兩線間的電壓差+(2 至6)V 表示;邏輯“0”以兩線間的電壓差-(2 至6)V 表示。接收端:A 比B 高200mV 以上即認為是邏輯“1”,A 比B 低200mV 以上即認為是邏輯“0”。
2、RS-485 的數(shù)據(jù)最高傳輸速率為10Mbps。但是由于RS-485 常常要與PC 機的RS-232 口通信,所以實際上一般最高115.2Kbps。又由于太高的速率會使RS-485 傳輸距離減小,所以往往為9600bps 左右或以下。
3、RS-485 接口是采用平衡驅(qū)動器和差分接收器的組合,抗噪聲干擾性好。
4、RS-485 接口的最大傳輸距離標(biāo)準(zhǔn)為1200 米(9600bps 時),實際上可達3000米,RS-485 接口在總線上是容許連接多達128 個收發(fā)器、即
RS-485 具有多機通信功能,這樣用戶可以利用單一的RS-485 接口方便的建立起網(wǎng)絡(luò)。因為RS-485 接口組成的半雙工網(wǎng)絡(luò),一般只需二根信號線,所以RS-485 接口均采用雙絞線傳輸。RS-485 的國際標(biāo)準(zhǔn)并沒有規(guī)定RS-485 的接口連接器標(biāo)準(zhǔn)、所以采用接線端子或者DB-
9、DB-25 等連接器都可以。
5、采用RS-485 接口時,傳輸電纜的長度如何考慮?
在使用RS-485 接口時,對于特定的傳輸線經(jīng),從發(fā)生器到負載其數(shù)據(jù)信號傳輸所容許的最大電纜長度是數(shù)據(jù)信號速率的函數(shù),這個長度數(shù)據(jù)主要是受信號失真及噪聲等影響所限制。最大電纜長度與信號速率的關(guān)系曲線是使用24AWG 銅芯雙絞電話電纜(線經(jīng)為0.51mm),線間旁路電容為52.5PF/M,終端負載電阻為100 歐時所得出的。(引自GB11014-89 附錄A)。當(dāng)數(shù)據(jù)信號速率降低到90Kbit/S 以下時,假定最大容許的信號損失為6dBV 時,則電纜長度被限制在1200M。實際上,在實用時是完全可以取得比它大的電纜長度。當(dāng)使用不同線經(jīng)的電纜,則取得的最大電纜長度是不相同的。例如:當(dāng)數(shù)據(jù)信號速率為600Kbit/S 時,采用24AWG 電纜,最大電纜長度是200m,若采用
19AWG電纜(線經(jīng)為0.91mm)則電纜長度將可以大于200m;若采用28AWG 電纜(線經(jīng)為0.32mm),則電纜長度只能小于200m。
RS-485 的遠距離通信建議采用屏蔽電纜,并且將屏蔽層作為地線。
三、什么是RS-422 接口?
RS-422 的電氣性能與RS-485 完全一樣。主要的區(qū)別在于:
RS-422 有4 根信號線:兩根發(fā)送(Y、Z)、兩根接收(A、B)。由于RS-422 的收與發(fā)是分開的所以可以同時收和發(fā)(全雙工)。
RS-485 有兩根數(shù)據(jù)線:發(fā)送和接收都是A 和B。由于RS-485 的收與發(fā)是共用兩根線,所以不能同時收和發(fā)(半雙工)。
四、RS-485 比RS-232-C 接口相比有何特點?
答:由于RS-232 接口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,主要有以下四點:
(1)接口的信號電平值較高,易損壞接口電路的芯片,又因為與TTL 電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL 電路連接。
(2)傳輸速率較低,在異步傳輸時,波特率為20Kbps?,F(xiàn)在由于采用了新的UART芯片,波特率達到115.2Kbps。
(3)接口使用一根信號線和一根信號返回線而構(gòu)成共地的傳輸形式,這種共地
傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。
(4)傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50 米,實際上也只能用在15 米左右。
(5)RS-232 只容許一對一的通信,而RS-485 接口在總線上是容許連接多達128 個收發(fā)器。
第四篇:RS485通訊協(xié)議簡介
RS485通訊協(xié)議簡介.txt13母愛是迷惘時苦口婆心的規(guī)勸;母愛是遠行時一聲殷切的叮嚀;母愛是孤苦無助時慈祥的微笑。本文由94liangmin94貢獻
doc文檔可能在WAP端瀏覽體驗不佳。建議您優(yōu)先選擇TXT,或下載源文件到本機查看。VCD1000 系列矢量型變頻器使用說明書
9.1 通訊概述
本公司系列變頻器向用戶提供工業(yè)控制中通用的 RS485 通訊接口。通訊協(xié) 議采用 MODBUS 標(biāo)準(zhǔn)通訊協(xié)議,該變頻器可以作為從機與具有相同通訊接口并采 用相同通訊協(xié)議的上位機(如 PLC 控制器、PC 機)通訊,實現(xiàn)對變頻器的集中 監(jiān)控,另外用戶也可以使用一臺變頻器作為主機,通過 RS485 接口連接數(shù)臺本 公司的變頻器作為從機。以實現(xiàn)變頻器的多機聯(lián)動。通過該通訊口也可以接遠 控鍵盤。實現(xiàn)用戶對變頻器的遠程操作。本變頻器的 MODBUS 通訊協(xié)議支持兩種傳送方式:RTU 方式和 ASCII 方式,用 戶可以根據(jù)情況選擇其中的一種方式通訊。下文是該變頻器通訊協(xié)議的詳細說 明。
9.2 通訊協(xié)議說明
9.2.1 通訊組網(wǎng)方式(1)變頻器作為從機組網(wǎng)方式: 變頻器作為從機組網(wǎng)方式:主機為 PC RS232 232-485 轉(zhuǎn) 換模塊 RS485 或 主機為 PLC 主機為 PC RS232 232-485 轉(zhuǎn)換 模塊 RS485 HD1000 HD1000
HD1000
HD1000
HD1000
單主機多從機
單主機單從機
圖 9-1 從機組網(wǎng)方式示意圖 -
(2)多機聯(lián)動組網(wǎng)方式: 多機聯(lián)動組網(wǎng)方式:
07-
VCD1000 系列矢量型變頻器使用說明書
主機 HD1000 RS485
從機 HD1000
從機 HD1000
從機 HD1000
從機 HD1000
圖 9-2 多機聯(lián)動組網(wǎng)示意圖 -
9.2.2 通信協(xié)議方式 該變頻器在 RS485 網(wǎng)絡(luò)中既可以作為主機使用,也可以作為從機使用,作 為主機使用時,可以控制其它本公司變頻器,實現(xiàn)多級聯(lián)動,作為從機時,PC 機或 PLC 可以作為主機控制變頻器工作。具體通訊方式如下:(1)變頻器為從機,主從式點對點通信。主機使用廣播地址發(fā)送命令時,從機不應(yīng)答。(2)變頻器作為主機,使用廣播地址發(fā)送命令到從機,從機不應(yīng)答。(3)用戶可以通過用鍵盤或串行通信方式設(shè)置變頻器的本機地址、波特率、數(shù)據(jù)格式。(4)從機在最近一次對主機輪詢的應(yīng)答幀中上報當(dāng)前故障信息。9.2.3 通訊接口方式 通訊為 RS485 接口,異步串行,半雙工傳輸。默認通訊協(xié)議方式采用 ASCII 方式。默認數(shù)據(jù)格式為:1 位起始位,7 位數(shù)據(jù)位,2 位停止位。默認速率為 9600bps,通訊參數(shù)設(shè)置參見 P3.09~P3.12 功能碼。
9.3 ASCII 通訊協(xié)議 字符結(jié)構(gòu): 字符結(jié)構(gòu):位字符框(For ASCII)
(1-7-2 格式,無校驗)
起 始 位 停 止 位 停 止 位
(1-7-1格式,奇校驗)
08-
VCD1000 系列矢量型變頻器使用說明書
起始 位
奇偶 位
停止 位
(1-7-1格式,偶校驗)
起始 位
奇偶 位
停止 位
11位字符框(For RTU)
(1-8-2格式,無校驗)
(1-8-1格式,奇校驗)
(1-8-1格式,偶校驗)
通訊資料結(jié)構(gòu): ASCII模式
楨頭 Address Hi Address Lo Function Hi Function Lo DATA(n-1)????? DATA 0 LRC CHK Hi LRC CHK Lo END Hi END Lo 起始字符=“:(3AH)” 通訊地址: 8位地址由2個ASCII碼組合 功能碼: 8位地址由2個ASCII碼組合 資料內(nèi)容: n*8位資料內(nèi)容由 2* n 個ASCII碼組合,高位在前,低位在后,n<=4,最大8個ASCII碼 LRC 校驗碼: 8位校驗碼由2個ASCII碼組合。結(jié)束字符: END Hi = CR(0DH), END Lo = CR(0AH)-109-
VCD1000 系列矢量型變頻器使用說明書 RTU模式: START Address Function DATA(n-
1)????? DATA 0 CRC CHK Low CRC CHK High END 通訊地址: 00H:所有變頻器廣播
(broadcast)01H:對01地址變頻器通訊。0FH:對15地址變頻器通訊。10H:對16地址變頻器通訊。以此類推???.,最大可到254(FEH)。功能碼(Function)與資料內(nèi)容(DATA): 03H:讀出寄存器內(nèi)容。06H:寫入一筆資料到寄存器。08H:回路偵測。功能碼03H:讀出一個寄存器內(nèi)容: 例如:讀出寄存器地址2104H內(nèi)容(輸出電流): ASCII模式: 詢問信息字符串格式 楨頭 地址 “: ”3AH “0”30H “1”31H 功能碼 “0”30H 功能碼 回應(yīng)信息字符串格式 楨頭 地址 “: ”3AH “0”30H “1”31H “0”30H CRC校驗碼 16-bit CRC校驗碼由2個8-bit 二進制組合 保持無出入信號大于等于10ms 保持無輸入信號大于等于10ms 通訊地址:8-bit 二進制地址 功能碼:8-bit 二進制地址 資料內(nèi)容: N*8-bit 資料,N<=8,最大8個字節(jié)
VCD1000 系列矢量型變頻器使用說明書
“3”33H 內(nèi)容 “2”32H “1”31H “0”30H “4”34H 2104H地址內(nèi)容 內(nèi)容
“3”33H “2”32H “1”31H “0”30H “4”34H “0”30H “0”30H “0”30H “0”30H
LRC CHECK
“D” 44H “7” 37H
LRC CHECK
“D” 44H “7” 37H
END
CR 0DH LF 0AH
END
CR 0DH LF 0AH
RTU模式: 詢問信息格式 地址 功能碼 內(nèi)容 01H 03H 21H 04H 回應(yīng)信息格式 地址 功能碼 內(nèi)容 01H 03H 21H 04H 00H 00H CRC CHECK Low CRC CHECK High E8H 4BH CRC CHECK Low CRC CHECK High 0EH 37H
功能碼06H:寫入一筆資料到寄存器。例如:對變頻器地址01H,寫P0.02=50.00HZ功能碼。ASCII模式: 詢問信息字符串格式 回應(yīng)信息字符串格式
VCD1000 系列矢量型變頻器使用說明書
楨頭 地址
“: ”3AH “0”30H “1”31H
楨頭 地址
“: ”3AH “0”30H “1”31H
功能碼
“0”30H “6”36H
功能碼
“0”30H “6”36H
內(nèi)容
“0”30H “0”30H “0”30H “2”32H “1”31H “3”33H “8”38H “8”38H內(nèi)容
“0”30H “0”30H “0”30H “2”32H
2104H地址內(nèi)容
“1”31H “3”33H “8”38H “8”38H
LRC CHECK
“5” 35H “C” 43H
LRC CHECK
“5” 35H “C” 43H
END
CR 0DH LF 0AH
END
CR 0DH LF 0AH
RTU模式: 詢問信息格式 地址 功能碼 內(nèi)容 00H 06H 00H 02H 13H 88H CRC CHECK Low CRC CHECK High 25H 5CH CRC CHECK Low CRC CHECK High 回應(yīng)信息格式 地址 功能碼 內(nèi)容 01H 06H 00H 02H 13H 88H 25H 5CH
VCD1000 系列矢量型變頻器使用說明書
命令碼:08H通訊回路測試 此命令用來測試主控設(shè)備與變頻器之間通訊是否正常。變頻器將收到的資料原封不動送給主控設(shè)備。
詢問信息字符串格式 楨頭 地址 “: ”3AH “0”30H “1”31H 功能碼 “0”30H “8”38H 內(nèi)容 “0”30H “1”31H “0”30H “2”32H “0”30H “3”33H “0”30H “4”34H LRC CHECK “E” 45H “D” 44H END CR 0DH LF 0AH RTU模式: 詢問信息格式 地址 功能碼 內(nèi)容 01H 08H 01H 02H
回應(yīng)信息字符串格式 楨頭 地址 “: ”3AH “0”30H “1”31H 功能碼 “0”30H “8”38H 內(nèi)容 “0”30H “1”31H “0”30H “2”32H 2104H地址內(nèi)容 “0”30H “3”33H “0”30H “4”34H LRC CHECK “E” 45H “D” 44H END CR 0DH LF 0AH
回應(yīng)信息格式 地址 功能碼 內(nèi)容 01H 08H 01H 02H
VCD1000 系列矢量型變頻器使用說明書
03H 04H CRC CHECK Low CRC CHECK High 41H 04H CRC CHECK Low CRC CHECK High03H 04H 41H 04H
校驗碼: 校驗碼: ASCII 模式:雙字節(jié) ASCII 碼。計算方法:對于消息發(fā)送端,LRC的計算方法是將要發(fā)送消息中“從機地址”到“運行數(shù) 據(jù)”沒有轉(zhuǎn)換成ASCII碼的全部字節(jié)連續(xù)累加,結(jié)果丟棄進位,得到的8位字節(jié)按位取反,后 再加1(轉(zhuǎn)換為補碼),最后轉(zhuǎn)換成ASCII碼,放入校驗區(qū),高字節(jié)在前,低字節(jié)在后。對于 消息接收端,采取同樣的LRC方法計算接收到消息的校驗和,與實際接收到的校驗和進行比較,如果相等,則接收消息正確。如果不相等,則接收消息錯誤。如果校驗錯誤,則丟棄該消息 幀,并不作任何回應(yīng),繼續(xù)接收下一幀數(shù)據(jù)。RTU 模式:雙字節(jié) 16 進制數(shù)。CRC 域是兩個字節(jié),包含一 16 位的二進制值。它由發(fā)送端計算后加入到消息中;添加時 先是低字節(jié),然后是高字節(jié),故 CRC 的高位字節(jié)是發(fā)送消息的最后一個字節(jié)。接收設(shè)備重新計 算收到消息的 CRC,并與接收到的 CRC 域中的值比較,如果兩值不同則接收消息有錯誤,丟 棄該消息幀,并不作任何回應(yīng),繼續(xù)接收下一幀數(shù)據(jù)。CRC 校驗計算方法具體參考 MODBUS 協(xié)議 說明。
通訊協(xié)議參數(shù)定義:
定義 內(nèi)部設(shè)定參數(shù) 參數(shù)地址 GGnnH 功能說明 GG代表參數(shù)群,nn代表參數(shù)號碼。對變頻器命令(06H)
2000H
0001H:運行命令 0002H:正轉(zhuǎn)運行命令 0003H:反轉(zhuǎn)運行命令 0004H:點動運行命令 0005H:點動正轉(zhuǎn)運行命令 0006H:點動反轉(zhuǎn)運行命令 0007H:減速停機命令 0008H:緊急停車命令 0009H:點動停機命令 000AH:故障復(fù)位命令
2001H
串口設(shè)置頻率命令
VCD1000 系列矢量型變頻器使用說明書
監(jiān)控變頻器狀態(tài)(03H)
2100H 2101H
讀變頻器故障碼。讀變頻器狀態(tài) BIT0:運行停止標(biāo)志,0:停止;1:運行 BIT1:欠壓標(biāo)志,1:欠壓;0:正常。BIT2:正反轉(zhuǎn)標(biāo)志,1:反轉(zhuǎn);0:正轉(zhuǎn)。BIT3:點動運行標(biāo)志,1:點動;0:非點動。BIT4:閉環(huán)運行控制選擇,1:閉環(huán);0:非閉環(huán)。BIT5:擺頻模式運行標(biāo)志,1:擺頻;0:非擺頻。BIT6:PLC運行標(biāo)志,1:PLC運行,0:非PLC運行。BIT7:端子多段速運行標(biāo)志,1:多段速;0:非。BIT8:普通運行標(biāo)志,1:普通運行;0:非。BIT9:主頻率來源自通訊界面,1:是;0:否。BIT10:主頻率來源自模擬量輸入,1:是;0:否。BIT11:運行指令來源自通訊界面,1:是;0:否。BIT12:功能參數(shù)密碼保護,1:是;0:否。2102H 2103H 2104H 2105H 2106H 2107H 2108H 2109H 210AH 210BH 讀功能碼數(shù)據(jù)(03H)GGnnH(GG:功能碼組號。nn :功能碼號)
讀變頻器設(shè)定頻率。讀變頻器輸出頻率。讀變頻器輸出電流。讀變頻器母線電壓。讀變頻器輸出電壓。讀電機轉(zhuǎn)速。讀模塊溫度。讀VI模擬輸入。讀CI模擬輸入。讀變頻器軟件版本。變頻器回應(yīng)功能碼數(shù)據(jù)。
VCD1000 系列矢量型變頻器使用說明書
讀功能碼數(shù)據(jù)(06H)
GGnnH(GG:功能碼組號。nn :功能碼號。)
寫入變頻器的功能碼數(shù)據(jù)。
錯誤碼定義: 錯誤碼定義: 錯誤碼 01H 02H 03H 說明 功能碼錯誤。變頻器能夠辯識功能碼:03H,06H,08H。資料地址錯誤。資料地址變頻器無法辯識。資料內(nèi)容錯誤。資料內(nèi)容超限。
第五篇:MODBUS-RTU通訊協(xié)議簡介
MODBUS-RTU通訊協(xié)議簡介
2008-10-10 17:27
1.1 Modbus協(xié)議簡述
ACRXXXE系列儀表使用的是Modbus-RTU通訊協(xié)議,MODBUS協(xié)議詳細定義了校驗碼、數(shù)據(jù)序列等,這些都是特定數(shù)據(jù)交換的必要內(nèi)容。MODBUS協(xié)議在一根通訊線上使用主從應(yīng)答式連接(半雙工),這意味著在一根單獨的通訊線上信號沿著相反的兩個方向傳輸。首先,主計算機的信號尋址到一臺唯一的終端設(shè)備(從機),然后,終端設(shè)備發(fā)出的應(yīng)答信號以相反的方向傳輸給主機。
Modbus協(xié)議只允許在主機(PC,PLC等)和終端設(shè)備之間通訊,而不允許獨立的終端設(shè)備之間的數(shù)據(jù)交換,這樣各終端設(shè)備不會在它們初始化時占據(jù)通訊線路,而僅限于響應(yīng)到達本機的查詢信號。
1.2 查詢—回應(yīng)周期
1.2.1 查詢
查詢消息中的功能代碼告之被選中的從設(shè)備要執(zhí)行何種功能。數(shù)據(jù)段包含了從設(shè)備要執(zhí)行功能的任何附加信息。例如功能代碼03是要求從設(shè)備讀保持寄存器并返回它們的內(nèi)容。數(shù)據(jù)段必須包含要告之從設(shè)備的信息:從何寄存器開始讀及要讀的寄存器數(shù)量。錯誤檢測域為從設(shè)備提供了一種驗證消息內(nèi)容是否正確的方法。
1.2.2 回應(yīng)
如果從設(shè)備產(chǎn)生一正常的回應(yīng),在回應(yīng)消息中的功能代碼是在查詢消息中的功能代碼的回應(yīng)。數(shù)據(jù)段包括了從設(shè)備收集的數(shù)據(jù):如寄存器值或狀態(tài)。如果有錯誤發(fā)生,功能代碼將被修改以用于指出回應(yīng)消息是錯誤的,同時數(shù)據(jù)段包含了描述此錯誤信息的代碼。錯誤檢測域允許主設(shè)備確認消息內(nèi)容是否可用。
1.3 傳輸方式
傳輸方式是指一個數(shù)據(jù)幀內(nèi)一系列獨立的數(shù)據(jù)結(jié)構(gòu)以及用于傳輸數(shù)據(jù)的有限規(guī)則,下面定義了與Modbus 協(xié)議– RTU方式相兼容的傳輸方式。
每個字節(jié)的位:
·1個起始位
·8個數(shù)據(jù)位,最小的有效位先發(fā)送
·無奇偶校驗位
·1個停止位
錯誤檢測(Error checking):CRC(循環(huán)冗余校驗)
1.4 協(xié)議
當(dāng)數(shù)據(jù)幀到達終端設(shè)備時,它通過一個簡單的“端口”進入被尋址到的設(shè)備,該設(shè)備去掉數(shù)據(jù)幀的“信封”(數(shù)據(jù)頭),讀取數(shù)據(jù),如果沒有錯誤,就執(zhí)行數(shù)據(jù)所請求的任務(wù),然后,它將自己生成的數(shù)據(jù)加入到取得的“信封”中,把數(shù)據(jù)幀返回給發(fā)送者。返回的響應(yīng)數(shù)據(jù)中包含了以下內(nèi)容:終端從機地址(Address)、被執(zhí)行了的命令(Function)、執(zhí)行命令生成的被請求數(shù)據(jù)(Data)和一個校驗碼(Check)。發(fā)生任何錯誤都不會有成功的響應(yīng),或者返回一個錯誤指示幀。
1.4.1 數(shù)據(jù)幀格式
AddressFunctionDataCheck
8-Bits8-BitsN x 8-Bits16-Bits
1.4.2 地址(Address)域
地址域在幀的開始部分,由一個字節(jié)(8位二進制碼)組成,十進制為0~255,在我們的系統(tǒng)中只使用1~247,其它地址保留。這些位標(biāo)明了用戶指定的終端設(shè)備的地址,該設(shè)備將接收來自與之相連的主機數(shù)據(jù)。每個終端設(shè)備的地址必須是唯一的,僅僅被尋址到的終端會響應(yīng)包含了該地址的查詢。當(dāng)終端發(fā)送回一個響應(yīng),響應(yīng)中的從機地址數(shù)據(jù)便告訴了主機哪臺終端正與之進行通信。
1.4.3 功能(Function)域
功能域代碼告訴了被尋址到的終端執(zhí)行何種功能。下表列出了該系列儀表用到的功能碼,以及它們的意義和功能。
代碼意義行為
03讀數(shù)據(jù)寄存器獲得一個或多個寄存器的當(dāng)前二進制值
16預(yù)置多寄存器設(shè)定二進制值到一系列多寄存器中(不對 ACRXXXE開放)
1.4.4 數(shù)據(jù)(Data)域
數(shù)據(jù)域包含了終端執(zhí)行特定功能所需要的數(shù)據(jù)或者終端響應(yīng)查詢時采集到的數(shù)據(jù)。這些數(shù)據(jù)的內(nèi)容可能是數(shù)值、參考地址或者設(shè)置值。例如:功能域碼告訴終端讀取一個寄存器,數(shù)據(jù)域則需要指明從哪個寄存器開始及讀取多少個數(shù)據(jù),內(nèi)嵌的地址和數(shù)據(jù)依照類型和從機之間的不同內(nèi)容而有所不同。
1.4.5 錯誤校驗(Check)域
該域允許主機和終端檢查傳輸過程中的錯誤。有時,由于電噪聲和其它干擾,一組數(shù)據(jù)在從一個設(shè)備傳輸?shù)搅硪粋€設(shè)備時在線路上可能會發(fā)生一些改變,出錯校驗?zāi)軌虮WC主機或者終端不去響應(yīng)那些傳輸過程中發(fā)生了改變的數(shù)據(jù),這就提高了系統(tǒng)的安全性和效率,錯誤校驗使用了16位循環(huán)冗余的方法(CRC16)。
1.5 錯誤檢測的方法
錯誤校驗(CRC)域占用兩個字節(jié),包含了一個16位的二進制值。CRC值由傳輸設(shè)備計算出來,然后附加到數(shù)據(jù)幀上,接收設(shè)備在接收數(shù)據(jù)時重新計算CRC值,然后與接收到的CRC域中的值進行比較,如果這兩個值不相等,就發(fā)生了錯誤。CRC運算時,首先將一個16位的寄存器預(yù)置為全1,然后連續(xù)把數(shù)據(jù)幀中的每個字節(jié)中的8位與該寄存器的當(dāng)前值進行運算,僅僅每個字節(jié)的8個數(shù)據(jù)位參與生成CRC,起始位和終止位以及可能使用的奇偶位都不影響CRC。在生成CRC時,每個字節(jié)的8位與寄存器中的內(nèi)容進行異或,然后將結(jié)果向低位移位,高位則用“0”補充,最低位(LSB)移出并檢測,如果是1,該寄存器就與一個預(yù)設(shè)的固定值(0A001H)進行一次異或運算,如果最低位為0,不作任何處理。
上述處理重復(fù)進行,直到執(zhí)行完了8次移位操作,當(dāng)最后一位(第8位)移完以后,下一個8位字節(jié)與寄存器的當(dāng)前值進行異或運算,同樣進行上述的另一個8次移位異或操作,當(dāng)數(shù)據(jù)幀中的所有字節(jié)都作了處理,生成的最終值就是CRC值。
生成一個CRC的流程為:
1預(yù)置一個16位寄存器為0FFFFH(全1),稱之為CRC寄存器。
2把數(shù)據(jù)幀中的第一個字節(jié)的8位與CRC寄存器中的低字節(jié)進行異或運算,結(jié)果存回CRC寄存器。
3將CRC寄存器向右移一位,最高位填以0,最低位移出并檢測。
4如果最低位為0:重復(fù)第三步(下一次移位);如果最低位為1:將CRC寄存器與一個預(yù)設(shè)的固定值(0A001H)進行異或運算。
5重復(fù)第三步和第四步直到8次移位。這樣處理完了一個完整的八位。
6重復(fù)第2步到第5步來處理下一個八位,直到所有的字節(jié)處理結(jié)束。7最終CRC寄存器的值就是CRC的值。