CN117435389A - 复杂情况下提高pc与嵌入式设备串口通信稳定性的方法 - Google Patents
复杂情况下提高pc与嵌入式设备串口通信稳定性的方法 Download PDFInfo
- Publication number
- CN117435389A CN117435389A CN202311625302.3A CN202311625302A CN117435389A CN 117435389 A CN117435389 A CN 117435389A CN 202311625302 A CN202311625302 A CN 202311625302A CN 117435389 A CN117435389 A CN 117435389A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- transmitting end
- verification
- check
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000012795 verification Methods 0.000 claims abstract description 46
- 230000005540 biological transmission Effects 0.000 claims abstract description 27
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 7
- 238000005516 engineering process Methods 0.000 claims abstract description 7
- 238000012790 confirmation Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 11
- 238000004458 analytical method Methods 0.000 abstract description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000004519 manufacturing process Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明公开了复杂情况下提高PC与嵌入式设备串口通信稳定性的方法。发送端根据传输协议定义的格式将需要传输的数据格式化成特定的格式进行发送,数据发送结束后,发送端设置超时时间,等待接收校验结果信息,确保通信的稳定性和效率。通过流量控制机制防止因数据拥堵而导致的通信异常。接收端接收到完整数据后,通过循环冗余校验技术判断传输数据是否正确通过出错,发送校验结果信息。将每次错误信息记录到PC的日志文件,以便事后分析和调试。本发明方法引入多次握手机制,提高通信链接的可靠性。本发明方法适用于在复杂环境中的各种应用场景,有助于提高通信系统的可靠性,降低数据传输中的错误和丢失,进而提升系统整体性能。
Description
技术领域
本发明属于嵌入式设备技术领域,尤其是嵌入式串口接口设备应用技术领域,具体涉及一种复杂情况下提高PC与嵌入式设备串口通信稳定性的方法。
背景技术
嵌入式系统由硬件和软件组成,是能够独立进行运作的器件。其软件内容只包括软件运行环境及其操作系统。硬件内容包括信号处理器、存储器、通信模块等在内的多方面的内容。串口(Serial Port)是一种用于在计算机和外部设备之间进行串行数据通信的物理接口。串口允许将数据按照位的顺序逐位地传输,而不是同时传输多个位。串口通常用于连接各种外部设备,如调制解调器、打印机、传感器、嵌入式系统等。个人计算机(PC,personal computer)能独立运行,并完成特定功能。
循环冗余校验(CRC,Cyclic Redundancy Check)是一种用于检测和纠正数据传输中错误的校验方法。它通过在数据帧中添加附加的冗余信息,利用多项式除法的原理生成校验码,并将其附加到传输的数据中。接收端同样利用相同的算法重新计算校验码,并与接收到的校验码进行比较,从而判断数据是否在传输过程中发生了错误。
嵌入式技术的迅速崛起正在推动着智能化时代的来临,嵌入式设备在各行业扮演着关键的角色,为生产、医疗、通信等领域提供了智能化解决方案。这些设备通常搭载着先进的、支持多线程的操作系统,以满足不断增长的计算和控制需求。然而,这种技术的应用也带来了一系列的挑战,特别是在嵌入式设备的串口通信方面。
通常情况下,为了降低成本和硬件复杂性,嵌入式设备的串口输出接口相对较少,有些甚至只包含一个串口。这在搭载多线程操作系统的嵌入式设备中引发了一系列的问题,其中最主要的问题之一是在多线程环境下实现串口通信的可靠性。操作系统的多线程特性使得数据传输变得更为复杂,而有限的串口接口难以胜任这一复杂环境下的通信需求。
在现代制造环境中,嵌入式设备通过串口与外部设备或计算机进行数据通信。然而,由于操作系统的多线程特性,数据往往被分割成多个片段进行传输,而有限的串口接口难以确保接收端能够完整接收这些片段。这种情况下,接收端难以正确还原原始信息,可能导致数据不完整、失真,甚至引发设备宕机的严重后果。特别是在嵌入式设备中,操作系统的多线程结构使得它们更容易在生产环境中失去对完整信息的掌控。嵌入式设备中的嵌入式操作系统往往是多线程的,为了提高处理效率,这些线程可能同时读取和写入串口数据,使得在有限的串口接口上传输的数据可能被打断、混淆,进而影响了通信的可靠性。这种不确定性可能导致在生产过程中接收不到完整的信息,从而可能引发设备宕机的情况。在生产线、医疗设备等关键应用场景下,设备宕机可能带来严重的生产中断、数据遗失,甚至可能危及患者的生命。
随着嵌入式设备在多线程操作系统下的广泛应用,仅有有限串口接口的设备在数据通信中面临严峻挑战。操作系统的多线程特性使得数据传输更为复杂,有限的串口接口难以保证接收端能够完整、准确地接收和还原信息。在生产环境中,这可能导致设备宕机、生产中断、数据遗失等严重问题,对生产效率和系统稳定性造成不可忽视的影响因此,为了确保在复杂多线程操作系统下串口通信的可靠性,迫切需要一种创新性的解决方案,以满足特定环境下通信稳定性的需求。这就是本发明应运而生的背景所在。
发明内容
本发明的目的是提供一种复杂情况下提高PC与嵌入式设备串口通信稳定性的方法。
本发明方法具体如下:
步骤(1)发送端根据传输协议定义的格式将需要传输的数据格式化成特定的格式进行发送;特定格式的数据包括帧头、帧尾和校验信息;帧头位于数据起始位置,帧尾位于数据终止位置,发送端根据待发送数据生成校验信息,并将校验信息附加到发送的数据中;
步骤(2)发送端开始发送特定格式的数据;发送数据时,发送端将数据拆分成多个子数据,按照顺序逐个发送;
步骤(3)数据发送结束后,发送端设置超时时间,等待接收校验结果信息,校验结果信息包括校验成功信息和校验失败信息:如果在设定的超时时间内收到校验成功信息,执行步骤(6);如果在设定的超时时间内没有收到校验结果信息,或收到的校验结果信息为校验失败信息,执行步骤(2);
在没有收到校验结果信息或收到的校验结果信息为校验失败信息情况下,如果发送端是PC,直接将本次错误记录到PC的日志文件,如果发送端是嵌入式设备,则将本次错误记录到嵌入式设备的内存中,在下一次通信中作为独立信息发送给PC,记录到PC的日志文件;
步骤(4)接收端通过数据的帧头和帧尾判断接收到的数据包是否完整,接收到帧尾后,将接收到的子数据拼接为完整数据;
步骤(5)接收端接收到完整数据后,通过循环冗余校验技术CRC判断传输数据是否正确:对接收到的排除校验信息后的数据生成校验码,校验码与校验信息的生成方法相同;比对校验码与校验信息是否相同,如果相同,则校验通过,发送校验成功信息至发送端;如果不相同,则校验失败,发送校验失败信息至发送端;
在校验失败情况下,如果接收端是PC,直接将本次错误记录到PC的日志文件,如果接收端是嵌入式设备,则将本次错误记录到嵌入式设备的内存中,在下一次通信中作为独立信息发送给PC,记录到PC的日志文件;
步骤(6)如果发送端为嵌入式设备,直接确认发送接收完成;如果发送端为PC,则PC收到校验成功信息后,发送确认信息至接收端嵌入式设备,确认发送接收完成。
本发明方法通过设置超时时间,确保通信的稳定性和效率;通过流量控制机制防止因数据拥堵而导致的通信异常;通过出错日志记录错误信息,便于事后分析和调试。本发明方法引入智能多次握手机制,提高了通信链接的可靠性。本发明方法适用于在复杂环境中的各种应用场景,有助于提高通信系统的可靠性,降低数据传输中的错误和丢失,进而提升系统整体性能。
附图说明
图1为本发明的流程示意图。
具体实施方式
复杂情况下提高PC与嵌入式设备串口通信稳定性的方法,包括:
数据帧格式:实现了数据帧格式,包括帧头和帧尾,以确保数据的开始和结束。这种格式化方法有助于准确定位和提取数据,确保数据帧的有效传输。
CRC校验技术:引入了CRC(循环冗余校验)技术,以检测传输中的错误。数据帧格式被修改,包括帧头和帧尾,以确保数据的开始和结束,并添加CRC校验码以提高数据完整性。
确认和重传机制:引入了确认和重传机制,以确保丢失的数据包得到重传。通过在通信双方之间实施确认和重传,保证了数据的可靠传输,减少了数据包丢失的可能性。
超时时间设置:设置了合理的超时时间,以在数据包未能及时确认时触发重传。超时机制的引入有助于及时处理未确认的数据包,确保通信的稳定性和效率。
流量控制机制:实现了流量控制机制,以避免发送方发送太多数据导致接收方无法处理。这有助于平衡通信双方之间的数据流,防止因数据拥堵而导致的通信问题。
错误信息记录:在发生错误时记录错误信息,以便事后分析和调试。通过记录错误信息,操作人员可以及时了解通信中发生的问题,有助于快速定位和解决潜在的故障。
多次握手机制:引入了多次握手机制,以提高握手的可靠性。在通信开始前,通信设备之间进行多轮握手操作,确保双方能够正确建立通信连接。特别是,在握手的最后一次中,确保握手信息是由PC向嵌入式设备发送的,以防止握手信息的错误排序或打乱导致握手失败的情况。这种安排可有效降低握手失败的可能性,确保通信的稳定性。
具体流程如图1所示:
步骤(1)发送端根据传输协议定义的格式将需要传输的数据格式化成特定的格式进行发送;特定格式的数据包括帧头、帧尾和校验信息;帧头位于数据起始位置,帧尾位于数据终止位置,发送端根据待发送数据生成校验信息,并将校验信息附加到发送的数据中;
步骤(2)发送端开始发送特定格式的数据;发送数据时,发送端将数据拆分成多个子数据,按照顺序逐个发送;
步骤(3)数据发送结束后,发送端设置超时时间,等待接收校验结果信息,校验结果信息包括校验成功信息和校验失败信息:如果在设定的超时时间内收到校验成功信息,执行步骤(6);如果在设定的超时时间内没有收到校验结果信息,或收到的校验结果信息为校验失败信息,执行步骤(2);
在没有收到校验结果信息或收到的校验结果信息为校验失败信息情况下,如果发送端是PC,直接将本次错误记录到PC的日志文件,如果发送端是嵌入式设备,则将本次错误记录到嵌入式设备的内存中,在下一次通信中作为独立信息发送给PC,记录到PC的日志文件;
步骤(4)接收端通过数据的帧头和帧尾判断接收到的数据包是否完整,接收到帧尾后,将接收到的子数据拼接为完整数据;
步骤(5)接收端接收到完整数据后,通过循环冗余校验技术CRC判断传输数据是否正确:对接收到的排除校验信息后的数据生成校验码,校验码与校验信息的生成方法相同;比对校验码与校验信息是否相同,如果相同,则校验通过,发送校验成功信息至发送端;如果不相同,则校验失败,发送校验失败信息至发送端;
在校验失败情况下,如果接收端是PC,直接将本次错误记录到PC的日志文件,如果接收端是嵌入式设备,则将本次错误记录到嵌入式设备的内存中,在下一次通信中作为独立信息发送给PC,记录到PC的日志文件;
步骤(6)如果发送端为嵌入式设备,直接确认发送接收完成;如果发送端为PC,则PC收到校验成功信息后,发送确认信息至接收端嵌入式设备,确认发送接收完成。
Claims (4)
1.复杂情况下提高PC与嵌入式设备串口通信稳定性的方法,其特征在于:
步骤(1)发送端根据传输协议定义的格式将需要传输的数据格式化成特定的格式进行发送;特定格式的数据包括帧头、帧尾和校验信息;帧头位于数据起始位置,帧尾位于数据终止位置,发送端根据待发送数据生成校验信息,并将校验信息附加到发送的数据中;
步骤(2)发送端开始发送特定格式的数据;发送数据时,发送端将数据拆分成多个子数据,按照顺序逐个发送;
步骤(3)数据发送结束后,发送端设置超时时间,等待接收校验结果信息,校验结果信息包括校验成功信息和校验失败信息:如果在设定的超时时间内收到校验成功信息,执行步骤(6);如果在设定的超时时间内没有收到校验结果信息,或收到的校验结果信息为校验失败信息,执行步骤(2);
步骤(4)接收端通过数据的帧头和帧尾判断接收到的数据包是否完整,接收到帧尾后,将接收到的子数据拼接为完整数据;
步骤(5)接收端接收到完整数据后,通过循环冗余校验技术CRC判断传输数据是否正确:对接收到的排除校验信息后的数据生成校验码,比对校验码与校验信息是否相同,如果相同,则校验通过,发送校验成功信息至发送端;如果不相同,则校验失败,发送校验失败信息至发送端;
步骤(6)如果发送端为嵌入式设备,直接确认发送接收完成;如果发送端为PC,则PC收到校验成功信息后,发送确认信息至接收端嵌入式设备,确认发送接收完成。
2.如权利要求1所述的复杂情况下提高PC与嵌入式设备串口通信稳定性的方法,其特征在于:所述的校验信息和校验码的生成方法相同。
3.如权利要求1所述的复杂情况下提高PC与嵌入式设备串口通信稳定性的方法,其特征在于:步骤(3)中,发送端在没有收到校验结果信息或收到的校验结果信息为校验失败信息情况下,如果发送端是PC,直接将本次错误记录到PC的日志文件,如果发送端是嵌入式设备,则将本次错误记录到嵌入式设备的内存中,在下一次通信中作为独立信息发送给PC,记录到PC的日志文件。
4.如权利要求1所述的复杂情况下提高PC与嵌入式设备串口通信稳定性的方法,其特征在于:步骤(5)中,在接收端校验失败情况下,如果接收端是PC,直接将本次错误记录到PC的日志文件,如果接收端是嵌入式设备,则将本次错误记录到嵌入式设备的内存中,在下一次通信中作为独立信息发送给PC,记录到PC的日志文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311625302.3A CN117435389A (zh) | 2023-11-30 | 2023-11-30 | 复杂情况下提高pc与嵌入式设备串口通信稳定性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311625302.3A CN117435389A (zh) | 2023-11-30 | 2023-11-30 | 复杂情况下提高pc与嵌入式设备串口通信稳定性的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117435389A true CN117435389A (zh) | 2024-01-23 |
Family
ID=89546206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311625302.3A Pending CN117435389A (zh) | 2023-11-30 | 2023-11-30 | 复杂情况下提高pc与嵌入式设备串口通信稳定性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117435389A (zh) |
-
2023
- 2023-11-30 CN CN202311625302.3A patent/CN117435389A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101227263B (zh) | 一种在线故障检测系统、装置及方法 | |
US8321737B2 (en) | Data transfer apparatus and data transfer control method | |
CN112910856A (zh) | 基于串口通信的通信协议的设计方法 | |
WO2018137147A1 (zh) | 一种核电站安全级仪控系统通信协议的自诊断方法 | |
CN106888114A (zh) | 一种核电站安全级仪控系统通信协议的自诊断方法 | |
JP3996928B2 (ja) | 破損データを処理する方法 | |
CN117220837A (zh) | 一种数据传输方法、存储介质及设备 | |
US20070038783A1 (en) | Communication device, host apparatus, and communication method | |
US7436777B2 (en) | Failed link training | |
CN117435389A (zh) | 复杂情况下提高pc与嵌入式设备串口通信稳定性的方法 | |
CN112249088B (zh) | 双显示系统互诊断与数据同步的方法、双显示系统和列车 | |
CN1703027B (zh) | 传递调试信息 | |
JPH05173922A (ja) | データ転送制御システム | |
US7363402B2 (en) | Data communications architecture employing parallel SERDES channels | |
US20230199306A1 (en) | Communication device and communication system | |
US20050152386A1 (en) | Successful transactions | |
CN111083115A (zh) | 数据传输方法和系统 | |
US7672222B2 (en) | Link failures | |
US7613958B2 (en) | Error detection in a system having coupled channels | |
US7310762B2 (en) | Detection of errors | |
CN111541578A (zh) | 一种双机热备联锁系统的数据交互装置、方法及系统 | |
US20240118974A1 (en) | Method for facilitating frame error handling and an electronic device | |
JPS5853249A (ja) | デ−タ送受信装置 | |
US7454514B2 (en) | Processing data with uncertain arrival time | |
US8910007B2 (en) | Apparatus and method for error check of transmission data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |