怎么写串口通信协议 rs232串口通信协议怎么写

RS232\u4e32\u53e3\u901a\u4fe1\u534f\u8bae\u600e\u4e48\u5199

\u53ef\u4ee5\u81ea\u5df1\u5199\u534f\u8bae

\u4e5f\u53ef\u4ee5\u7528 \u901a\u7528\u534f\u8bae\uff0c\u5982 modbus

\u534f\u8bae\u4e00\u822c\u8981\u5305\u542b\uff1a\u8d77\u59cb\u7b26\u3001\u3001\u6570\u636e\u3001\u6821\u9a8c\u7801\u3001\u7ed3\u675f\u7b26\uff0c5\u4e2a\u90e8\u5206\u7684\u5b9a\u4e49\u3002
\u5176\u4e2d \u8d77\u59cb\u7b26\u3001\u7ed3\u675f\u7b26\uff0c\u4e0d\u80fd\u4e0e\u5176\u4ed6\u6570\u636e\u91cd\u7801\u3002
\u5982\u53ea\u8981\u4f20\u8f93\u5b57\u6bcd\u4e0e\u6570\u5b57\uff0c\u53ef\u4ee5\u770b\u4e0bASCII\u7801\u8868\uff0c\u4f7f\u7528\u975e\u6570\u5b57\u548c\u5b57\u6bcd\u7684\u7b26\u53f7\u505a\u8d77\u59cb\u7ed3\u675f\u7b26\u5373\u53ef\uff0c\u5982\uff5b\uff5d\uff1b
\u6570\u636e\u957f\u5ea6\u7801\u5373\u8868\u793a\u6b64\u4e32\u6570\u636e\u5305\u7684\u6570\u636e\u957f\u5ea6\uff0c\u5982\u679c\u4f20\u8f93\u7684\u6570\u636e\u4e32\u957f\u5ea6\u56fa\u5b9a\u53ef\u7701\u53bb\uff1b
\u6821\u9a8c\u7801\u76f8\u5f53\u4e8e\u5bf9\u6b64\u4e32\u6570\u636e\u6b63\u786e\u6027\u7684\u6821\u9a8c\uff0c\u548c\u5947\u5076\u6821\u9a8c\u6548\u679c\u7c7b\u4f3c\uff0c\u4e00\u822c\u662f\u548c\u6821\u9a8c\uff0c\u5373\u5c06\u6570\u636e\u5168\u90e8\u7d2f\u52a0\u5f97\u5230\u4e00\u4e2a\u548c\u503c\u5f53\u6821\u9a8c\u7801\uff0c\u63a5\u6536\u65b9\u6536\u5230\u6570\u636e\u4e5f\u505a\u4e00\u6837\u7684\u8fd0\u7b97\u4e0e\u6536\u5230\u7684\u68c0\u9a8c\u7801\u6bd4\u8f83\uff0c\u76f8\u7b49\u5c31\u8bf4\u660e\u6b63\u786e\u63a5\u6536\u3002
\u5982\u8981\u53d1\uff5b1234567890 \uff5d
\u6362\u621016\u8fdb\u5236\u5373\uff1a7B 10 31 32 33 34 35 36 37 38 39 30 25 7D\uff1b31~30\u662f\u6570\u636e\uff0c
7B,7D\u5206\u522b\u4e3a\u8d77\u59cb\u548c\u7ed3\u675f\u7b26\uff0c10\u4e3a\u6570\u636e\u957f\u5ea6\u7684BCD\u7801\uff0c25\u662f\u6821\u9a8c\u7801\uff0c\u662f31~30\u7684\u548c\u6a21100\u540e\u7684BCD\u7801\uff0c\u8f6c\u6210BCD\u7801\u662f\u4e3a\u4e86\u907f\u514d\u4e0e \u8d77\u59cb\u548c\u7ed3\u675f\u7b26\u91cd\u7801\u3002

串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
什么是串口
串口是计算机上一种非常通用的设备通信协议(不要与通用串行总线Universal SerialBus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信接口;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:
(1)地线,
(2)发送,
(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是比特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配:
a,比特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,就是指比特率,例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的比特率为14400,28800和36600。比特率可以远远大于这些值,但是波特率和距离成反比。高比特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位为1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。串口通讯协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。

通信协议是可以自己定义的,只不过要求不一样,可以自己随意定义,也可以根据客户要求定义,或根据相关设备定义(如你所述你的主机通过扫描枪扫描二维码,那主机内部就应该有相关编码协议),看相关说明书能查到。同时自己也可以在里面加上校验码等等

  • 濡備綍缂栧啓鑷繁鐨涓插彛閫氳鍗忚
    绛旓細鎵璋撶殑涓插彛閫氫俊鍗忚锛屽叾瀹烇紝灏辨槸涓插彛閫氫俊鏃讹紝鐩镐簰鐨勪竴绉嶈仈绯绘柟寮忋傝嚦浜庡唴瀹瑰畬鍏ㄥ彲浠ユ牴鎹嚜宸辩殑闇瑕佹潵鍒跺畾銆傚寘鎷細棣栧厛纭畾娉㈢壒鐜囷紝鏄惁鏈夊鍋舵牎楠岋紝涓鑸兘涓嶇敤锛屾瘮杈冮夯鐑︼紝浣嗗彲浠ュ姞涓涓瓧鑺傜殑鏍¢獙鍜屾垨鏍¢獙瀛椼傚叾娆★紝澶氭満閫氫俊鏃讹紝瑕佺‘瀹氭瘡涓満鍣ㄧ殑鍦板潃锛屽弻鏈洪氫俊灏变笉鐢ㄤ簡銆傜劧鍚庢槸鑱旂郴鏂瑰紡锛屽嵆閫氫俊鏃讹紝鏄惁鐢...
  • rs232涓插彛閫氫俊鍗忚鎬庝箞鍐
    绛旓細鍗忚涓鑸鍖呭惈锛氳捣濮嬬銆併佹暟鎹佹牎楠岀爜銆佺粨鏉熺锛5涓儴鍒嗙殑瀹氫箟銆傚叾涓 璧峰绗︺佺粨鏉熺锛屼笉鑳戒笌鍏朵粬鏁版嵁閲嶇爜銆傚鍙浼犺緭瀛楁瘝涓庢暟瀛楋紝鍙互鐪嬩笅ASCII鐮佽〃锛屼娇鐢ㄩ潪鏁板瓧鍜屽瓧姣嶇殑绗﹀彿鍋氳捣濮嬬粨鏉熺鍗冲彲锛屽{锝;鏁版嵁闀垮害鐮佸嵆琛ㄧず姝や覆鏁版嵁鍖呯殑鏁版嵁闀垮害锛屽鏋滀紶杈撶殑鏁版嵁涓查暱搴﹀浐瀹氬彲鐪佸幓;鏍¢獙鐮佺浉褰撲簬瀵规涓叉暟...
  • 鏂版墜姹傚姪,STM32涓插彛閫氫俊鍗忚鎬庝箞鍐
    绛旓細STM32涓插彛閫氫俊鍗忚缂栧啓鏄涓庝笌涔嬬浉閰嶇殑閫氫俊璁惧涓璧疯冭檻濡備綍缂栧啓锛屽璁炬湁鍗忚锛屾寜鐓у璁惧崗璁绾︾紪鍐銆傚鏋滃彧鏄竴瀵逛竴涓旈氫俊璺濈寰堢煭锛屼笉闇瑕佺壒瑙勮寖鐨勫崗璁傚崗璁槸涓轰簡淇濊瘉閫氫俊鍙潬鎬у拰澶氭満閫氫俊浜轰负璁惧畾鐨勪竴濂楀彂閫佸拰搴旂瓟鏍煎紡銆傚叿浣撴庝箞璁㈣繖涓崗璁鏍规嵁搴旂敤鐜鏉ュ垽鏂備絾閫氫俊鍗忚鍜屾寚浠よ绾﹀閫氫俊璧蜂簨鍗婂姛...
  • 鎬庝箞鍐欎覆鍙i氫俊鍗忚
    绛旓細涓插彛鎸変綅锛坆it锛夊彂閫佸拰鎺ユ敹瀛楄妭銆傚敖绠℃瘮鎸夊瓧鑺傦紙byte锛夌殑骞惰閫氫俊鎱紝浣嗘槸涓插彛鍙互鍦ㄤ娇鐢ㄤ竴鏍圭嚎鍙戦佹暟鎹殑鍚屾椂鐢ㄥ彟涓鏍圭嚎鎺ユ敹鏁版嵁銆備粈涔堟槸涓插彛 涓插彛鏄绠楁満涓婁竴绉嶉潪甯搁氱敤鐨勮澶閫氫俊鍗忚锛堜笉瑕佷笌閫氱敤涓茶鎬荤嚎Universal SerialBus鎴栬匲SB娣锋穯锛夈傚ぇ澶氭暟璁$畻鏈哄寘鍚袱涓熀浜嶳S232鐨勪覆鍙c備覆鍙e悓鏃朵篃鏄华鍣ㄤ华琛ㄨ澶...
  • 涓插彛閫氫俊濡備綍浣跨敤MODBUS鍗忚?涓句釜C璇█鐨勪緥瀛愩
    绛旓細瀵逛簬涓鏉TU鍗忚鐨勫懡浠ゅ彲浠ョ畝鍗曠殑閫氳繃浠ヤ笅鐨勬楠よ浆鍖栦负ASCII鍗忚鐨勫懡浠わ細1銆 鎶婂懡浠ょ殑CRC鏍¢獙鍘绘帀锛屽苟涓旇绠楀嚭LRC鏍¢獙鍙栦唬銆2銆 鎶婄敓鎴愮殑鍛戒护涓茬殑姣忎竴涓瓧鑺傝浆鍖栨垚瀵瑰簲鐨勪袱涓瓧鑺傜殑ASCII鐮侊紝姣斿0x03杞寲鎴0x30,0x33锛0鐨凙SCII鐮佸拰3鐨凙SCII鐮侊級銆3銆 鍦ㄥ懡浠ょ殑寮澶村姞涓婅捣濮嬫爣璁扳:鈥濓紝瀹冪殑ASCII鐮佷负...
  • 鐢≦t缂栧啓涓涓涓插彛閫氳绋嬪簭
    绛旓細鏍规嵁鍗忚缂栧啓鎵撳嵃鏈涓插彛閫氫俊绋嬪簭銆傛柊寤轰竴涓猀t椤圭洰锛 鏂囦欢-鏂板缓鏂囦欢鎴栭」鐩(ctrl+n)鍗曟満 choose 涔嬪悗 鍏ㄩ儴涓嬩竴姝ュ埌瀹屾垚 鎴愬姛寤虹珛涓涓猀t Widgets Application 鏂板缓涓涓鐞哠erialPort鐨勭被  鍙冲嚮椤圭洰鍚嶅瓧-娣诲姞鏂版枃浠 寮瑰嚭 濡備笅妗嗭細閫夋嫨C++ Class锛屽崟鏈 choose 寮瑰嚭濡備笅妗嗭細 骞跺~鍐 鍗曟満涓嬩竴姝 涔嬪悗 ...
  • 鎬庝箞鍦╨abview缂栧啓modbus涓插彛閫氫俊鍗忚???
    绛旓細棣栧厛锛屼綘瑕佺煡閬搇abview鐨涓插彛閫氫俊鎬庝箞鍐鐨勶紝鐒跺悗鍐欐暟鎹椂鍊欙紝鐢∕ODBUS鍗忚鐨勬牸寮忓啓銆傛瘮濡傘備竴鑸鍙栫殑璇濇槸01 03 00 00 00 01 +CRC鏍¢獙锛2涓瓧鑺傦級01鏄瓙绔欑殑鍦板潃锛03鏄姛鑳藉悧锛00 00 鏄鍙栫殑鍦板潃锛00 01 鏄鍙栫殑鏁版嵁闀垮害 鍏朵粬浠ユ绫绘帹銆傛寜鏍煎紡鍐欏氨琛屼簡銆
  • 姹傚崟鐗囨満涓插彛閫氫俊鍗忚,鍋氳璁¤姹:涓婁綅鏈洪氳繃涓插彛瀹炵幇鐐逛寒鍜岀伃3鐩廘E...
    绛旓細//涓插彛鍙戦佷竴涓瓧鑺 void Uart_SendChar(unsigned char dat){ SBUF = dat; //寰呭彂閫佺殑鏁版嵁鍐欏叆缂撳啿鍖 while(!TI); //绛夊緟鍙戦佸畬鎴 TI = 0; //娓呴浂鍙戦佹爣蹇椾綅 } /*---*/ //涓插彛鍙戦佷竴涓瓧绗︿覆 void Uart_SendString(){ uchar i=0;while(trdata[i]!=0x00){ SBUF=trdata[i];while...
  • 51鍗曠墖鏈濡備綍杩涜涓插彛閫氫俊,骞跺埗瀹閫氫俊鍗忚.
    绛旓細A鍜孊鐨勯氫俊,浣犲厛璋冭瘯涓鍙版満鍣,姣斿A,鍜岀數鑴戣繛鎺,鐢ㄤ覆鍙h皟璇曞姪鎵(缃戜笂鎵)鏌ョ湅A鐨勬敹鍙戞暟鎹槸鍚︽甯,鐒跺悗A鍜孊鑱旇皟 涓插彛閫氫俊璺濈涓嶈繙涓鑸笉浼氬嚭閿,娉㈢壒鐜囪緝浣,闄や簡濂囧伓鏍¢獙,浣犲彲浠ユ寚瀹氫竴涓畝鍗曠殑閫氫俊鍗忚,鏉ラ獙璇佹槸鍚︽暟鎹甯 杩欑被绋嬪簭缃戜笂寰堝,浣犱笉娓呮灏辨悳绱51涓插彛绋嬪簭,鍑烘潵涓澶у爢,鎵句釜鏈夋敞閲婄殑鐪嬬湅,...
  • 鐢╟++缂栧啓鐨涓插彛閫氫俊绋嬪簭,鍏朵腑鏈夎姹:1.閫氫俊鏁版嵁鏍煎紡(ASCII缂栫爜鏍煎紡) 2...
    绛旓細1鎵撳紑涓插彛 HANDLE hCom; //鍏ㄥ眬鍙橀噺锛屼覆鍙e彞鏌 hCom=CreateFile("COM1",//COM1鍙 GENERIC_READ|GENERIC_WRITE, //鍏佽璇诲拰鍐 0, //鐙崰鏂瑰紡 NULL,OPEN_EXISTING, //鎵撳紑鑰屼笉鏄垱寤 0, //鍚屾鏂瑰紡 NULL);if(hCom==(HANDLE)-1){ AfxMessageBox("鎵撳紑COM澶辫触!");return FALSE;} return ...
  • 扩展阅读:远动的101和104通道 ... 以太网三种协议 ... 串口通信协议范例 ... modbus三种通讯协议 ... 简单的串口通信协议 ... 蓝牙串口通信协议 ... 怎样看懂通信协议 ... rs232串口通信协议 ... 自定义串口协议 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网