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