关闭→
当前位置:科普经验站>综合知识>通讯协议怎么写

通讯协议怎么写

科普经验站 人气:3.4W
1. 怎么写串口通信协议

串口按位(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七层参考模型中的数据链路层。

2. 51单片机485通讯协议怎么写 有代码最好

所谓通讯协议 只是一种约定,如果都是 自己做的系统,只要自己定制一个就可以了,

如果与 其它 系统 通讯 ,则需要 知道 其通讯协议内容,

如 一个简单的 通讯协议 控制指令

发送 01H 代表 打开开关

发送 02H 代表 关闭开关

则 发送端 发了 01H 接收端 收到 01H 就控制 打开开关

发送端 发了 02H 接收端 收到 02H 就控制 关闭开关

这感觉很简单,在实际应用中 要 考虑 正确性 需要验证,

如红外遥控器 指令码与反码 接收端判断 指令码与反码比较是否正确。

3. 协议怎么写

甲方:_____________ 乙方:_____________ 甲、乙双方本着自愿、平等、公平、诚实、信用的原则,经友好协商,根据中华人民共和国有关法律、法规的规定签定本协议,由双方共同遵守。

第一条协议范围内,双方的关系确定为合作关系。为拓展市场更好地、更规范地服务消费者,根据公司的规划,甲方根据乙方的申请和对乙方的经营能力的审核,同 意乙方加入___________公司的销售网络。

同意乙方在_______省(市、自治区)_________市(地区)_______县 (区)_______地点(商场建筑物)(代理、经销、专卖、批发、零售)专属性经营(_______)品牌________系列产品。 第二条订立本协议的目的在于确保甲、乙双方忠实地履行本协议规定的双方的职责和权利。

乙方作为单独的企业法人或经营者进行经济活动。因此,他必须遵守对所 有企业法人或经营者共同的法律要求,特别是有关资格的规则以及社会的、财务的商业要求。

作为一个企业法人或经营者,乙方应就其活动自负一切风险和从合法经 营中获利。乙方不是甲方的代理人,也不是甲方的雇员和合伙人。

乙方不是作为甲方委托代表,乙方无权以甲方的名义签定协议,使甲方在任何方面对第三人承担责 任,或由甲方负担费用,承担任何义务。订立本协议并未授予乙方任何约束甲方或甲方有关企业之权利,甲方对本协议任何条款有最终的解释权。

第三条有效期从_______年_____月_____日至_______年_____月_____日,由签约日计。除非本协议提前终止,乙方可在协议有 效期满前三个月向甲方提出延长协议合作的书面请求,经甲方同意,可以续签《__________合作协议书》。

第四条甲方为使乙方所辖区域更好运营,开发和提供适销产品,保证产品质量符合标准,合理定价,最大限度保证乙方的供应。在本协议期间,甲方承诺,积极协助 承担市场物流、组织功能乙方按甲方规划进行市场设计和拓展市场网络。

甲方承诺在乙方要求下,可为乙方代办货物托运及相应事项,用乙方要求的方式运输到乙方 所指定的地点,其运输、保险等费用均由受益人乙方支付。甲方为乙方提供适当的培训和辅导。

作为市场开发和业务拓展必备条件,以保证整个系统持续统一。甲方 负责组织品牌宣传,并协同承担市场物流、组织功能的乙方开展区域性的促销活动,最大限度地支持乙方的经营。

甲方在作出的广告及推广活动之前,须先将有关活 动资料通知乙方,以使乙方能于活动前作出适当准备及加以响应。甲方的品牌和产品及相关的灯箱广告、POP广告、店铺内外之装潢设计及陈设,由甲方定出 VIS形象设计,并为乙方提供相应辅导。

第五条乙方保护甲方的商标等知识产权,规范地使用甲方商标标识。乙方有义务协助甲方打假、市场监管。

举报、举证假冒伪劣产品、窜货以及其它不正当竞争行 为。协同甲方与当地相关的执法部门进行协调、沟通。

乙方只能在甲方授权的区域内开展业务,不得在其它区域销售商品,如未有其它分销商经营的区域,乙方如愿 发展业务,必须向甲方申请。 乙方只能在甲方所指定的进货渠道进货,不得到其它地方进货。

通过市场的细分、有序的管理、合 理地分配,有效支持网点商品供应,不得经营其它品牌产品和销售假冒产品。协议有效期内,乙方所属区域内网点的零售价格,在甲方建议价格范围内保持统一,不 得随意大幅度调价。

乙方有义务为甲方收集所需要的市场信息,或根据甲方的要求进行市场调查,并在规定期限内汇总上报甲方。妥善保存乙方的经营业务记录,以 备甲方的核查。

第六条乙方有使用甲方授权范围内的商标、商标标识、VIS形象设计及甲方提供的适当范围的经营技术和商业秘密的权利。乙方具有从甲方指定进货渠道 进货并在协议规定的范围内进行销售的权利。

具有因甲方提供的产品本身质量问题可无条件退换的权利,但属乙方经营问题则由乙方自理。获得甲方所提供的培训和 指导的权利。

独立处理协议约定以外事项的权利。在协议约定的范围内行使甲方所赋予的权利。

承担市场物流、组织功能的乙方有权推荐、考核所辖范围内分销商或 零售商。但推荐的分销商、零售商必须向甲方申请,签定协议、由甲方颁发证书后方可运营。

第七条在乙方违背本协议即违法经营、制假、售假、恶意窜货、侵犯甲方知识产权等严重侵害甲方合法权益等行为时,本协议视作立即终止。甲方有权采取对乙方的 下列措施: 1.责令乙方自行承担费用拆除所有的灯箱及一切有关的装饰用具、店面装修、宣传品等。

乙方自行承担软件和硬件设备投资的一切损失2.向有关执法机关提出执法请求,封存乙方所有的带有甲方商标标识的商品。 3.依法提请司法和执法机关追索乙方的赔偿责任和法律责任。

与此同时乙方必须 (1)结清与甲方(甲方指定的供货商)的财务往来关系。 (2)不得再进行销售甲方的商品。

(3)必须承担客户后续服务成本,包括退货、维修、索赔等。 第八条甲方的商标,属甲方所有的知识产权,受国家法律保护。

所有相关产品的标识,均属甲方所有。未经甲方事先书面专项授权,乙方不得使用甲方的名称、商 标、公司司标等涉及公司知识产权内容、标识进。

4. 通信协议 还是通讯协议

通信协议。

通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。

交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。

对于通讯协议,开放系统互联协议中最早的协议之一,它为连接不同操作系统和不同硬件体系结构的互联网络提供通信支持,是一种网络通用语言。TCP/IP协议定义了在互联网络中如何传递、管理信息(文件传送、收发电子邮件、远程登录等),并制定了在出错时必须遵循的规则。

5. 如何编写自己的串口通讯协议

所谓的串口通信协议,其实,就是串口通信时,相互的一种联系方式。

至于内容完全可以根据自己的需要来制定。包括:首先确定波特率,是否有奇偶校验,一般都不用,比较麻烦,但可以加一个字节的校验和或校验字。

其次,多机通信时,要确定每个机器的地址,双机通信就不用了。然后是联系方式,即通信时,是否用握手信息,互相交换联系信号,为了加密,还可以交换密码。

最简单的就是:发一帧数据时用几个字节,带不带校验和,起始字节是什么,结束字节是什么,关键的命令字是什么,数据字节是什么。命令字表示什么动作,数据表示状态。

反正都是自己确定的,怎么编写协议都 行的。

6. 如何编写自己的串口通讯协议

下面以一个例程来做说明:

ARDUINO 代码复制打印

int incomingByte = 0; // 接收到的 data byteString inputString = ""; // 用来储存接收到的内容boolean newLineReceived = false; // 前一次数据结束标志 void setup() { Serial.begin(9600); //设定通讯端口及速率} void loop() { if (newLineReceived) { Serial.print(inputString); // 这里只是简单的将它打出来了,你可以根据自己的要求来用你接收到的数据。。 inputString = ""; // clear the string newLineReceived = false; 。。..//其他你的程序 }} //serialEvent()是IDE1.0及以后版本新增的功能,不清楚为什么大部份人不愿意用,这个可是相当于中断功能一样的啊! void serialEvent(){ while (Serial.available()) { incomingByte = Serial.read(); //一个字节一个字节地读,下一句是读到的放入字符串数组中组成一个完成的数据包 inputString += (char) incomingByte; // 全双工串口可以不用在下面加延时,半双工则要加的// // 下面就是所谓的通讯协议了,如果接收到了换行符号,本例是定义了这次串口通讯数据接收结束// // 其他的你还可以加一些规则,比如数据包起始位,规定一个数据包就是以FF为开头的,如果不是就不接收// // 也可以加上数据校验位,同样在这里做一个校验判断,如果不符合,则将数据包丢掉,再通过一个标志位写个值,// //在主程序里面让发送方重发(主程序里面都写一条IF就行了)// if (incomingByte == 'n') { newLineReceived = true; } }}

TAG标签:#通讯 #协议 #