CN101193118A - 一种上位机和下位机之间的通信方法 - Google Patents
一种上位机和下位机之间的通信方法 Download PDFInfo
- Publication number
- CN101193118A CN101193118A CNA200710129759XA CN200710129759A CN101193118A CN 101193118 A CN101193118 A CN 101193118A CN A200710129759X A CNA200710129759X A CN A200710129759XA CN 200710129759 A CN200710129759 A CN 200710129759A CN 101193118 A CN101193118 A CN 101193118A
- Authority
- CN
- China
- Prior art keywords
- frame
- register
- host computer
- operand
- command
- 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.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种上位机和下位机之间的通信方法,上位机通过发送下行帧和接收上行帧与下位机进行通信。其中,所述下行帧包括:写寄存器命令帧和读寄存器命令帧,所述上位机通过发送所述写寄存器命令帧或读寄存器命令帧来实现对下位机控制,所述下行帧或上行帧使用寄存器地址寻址方式,并使用固定长度的帧结构。采用本发明所述方法,对于上位机发起的在任何控制功能都在上位机上转换成为读命令或者写命令,下位机只需要完成写寄存器,读寄存器并返回结果两种简单操作,简化了下位机的命令处理复杂度,大大提高了下位机的处理器的运行效率,能够使得上位机高效地控制下位机,并实时地获取下位机的运行状态信息。
Description
技术领域
本发明涉及通信领域,尤其涉及一种上位机和下位机之间的通信方法。
背景技术
在嵌入式系统开发中,上位机通过异步串行通讯来实现对下位机的控制是一种极为常见的方法。上位机是命令的发起者,下位机是命令的执行者。但是通常情况下,上位机并没有考虑某一控制命令对于下位机来说实现的难易程度,如果某些命令对于下位机来说运算量过大是不合适的。下位机的处理器应该尽可能多的去完成其应用功能,对于命令解析、通信协议处理的实现应该做到尽可能的简单、统一。
但是目前上位机和下位机之间采用字节流进行通信的方法,效率比较低,没有一套上位机高效地控制下位机的方法。
发明内容
本发明提供一种上位机和下位机之间的通信方法,以使得上位机高效地控制下位机。
为了解决上述技术问题,本发明提供一种上位机和下位机之间的通信方法,上位机通过发送下行帧和接收上行帧与下位机进行通信。
本发明所述方法,其中,所述下行帧包括:写寄存器命令帧和读寄存器命令帧,所述上位机通过发送所述写寄存器命令帧或读寄存器命令帧来实现对下位机控制。
本发明所述方法,其中,所述下行帧或上行帧使用寄存器地址寻址方式,并使用固定长度的帧结构。
本发明所述方法,其中,所述上位机通过发送所述写寄存器命令帧来实现对下位机控制包括如下步骤:
(2.1)所述上位机确定需要下位机完成的功能;
(2.2)所述上位机将所述需要完成的功能分解为对相应的寄存器进行写操作的序列;
(2.3)所述上位机构造并发送写寄存器命令帧,直至发送完毕:上位机将标识帧开始的字符作为帧头,将标识写操作命令的字符作为命令字,将所述需要写操作的寄存器的地址和该寄存器需要设置的数值作为操作数,依次将帧头、命令字、操作数写入写寄存器命令帧,发送给下位机;若需要对多个寄存器进行写操作,则构造多个写寄存器命令帧,依次发送给下位机;
(2.4)所述下位机接收上位机发送过来的写寄存器命令帧并执行。
本发明所述方法,其中,所述上位机通过发送所述读寄存器命令帧来实现对下位机控制包括如下步骤:
(a)所述上位机构造并发送读寄存器命令帧:上位机将标识帧开始的字符作为帧头,将标识读操作命令的字符作为命令字,将所述需要读操作的寄存器的地址作为操作数,依次将帧头、命令字、操作数写入读寄存器命令帧,发送给下位机;
(b)所述下位机接收然后通过发送上行帧向上位机返回需要读操作的寄存器的地址对应的两字节的寄存器的值;
(c)所述上位机读取下位机返回的上行帧。
进一步地,步骤(2.3)中,所述操作数包括操作数1和操作数2,将所述需要写操作的寄存器的地址作为操作数1,将该寄存器需要设置的数值作为操作数2。
进一步地,步骤(a)中,所述操作数包括操作数1和操作数2,将所述需要读操作的寄存器的地址作为操作数1。
采用本发明所述方法,与现有技术相比,对于上位机发起的在任何控制功能都在上位机上转换成为读命令或者写命令,下位机只需要完成写寄存器,读寄存器并返回结果两种简单操作,简化了下位机的命令处理复杂度,大大提高了下位机的处理器的运行效率,能够使得上位机高效地控制下位机,并实时地获取下位机的运行状态信息。
附图说明
图1是本方法实施例上位机通过发送写命令来实现对下位机的控制流程图;
图2是本方法实施例上位机通过发送读命令来实现对下位机的控制流程图;
图3是本方法应用实例解复用器控制解调器完成时隙选择功能的流程图。
具体实施方式
以下结合附图和具体实施方式对本发明所述技术方案进行详细描述。
本发明中上位机通过发送下行帧和接收上行帧与下位机进行通信。为了使得下位机对通信协议处理简单,本发明设计原则遵循:使用寄存器地址寻址方式、使用固定长度的帧结构。
本发明实施例定义了下行帧和上行帧的帧结构,由于下位机的寄存器是16比特的,因此下行帧和上行帧中和寄存器相关的操作数都为两字节。
下行帧是上位机向下位机发送的命令帧,其格式如下表1所示
表1下行帧格式
对表1说明如下:
Header:帧头,2字节,标识一个帧的开始,字符0x8F9F(其中,0x表示后面的值是16进制);
Command:命令字,2字节,即操作命令,高字节在前;
Operand1:操作数1,2字节,即操作参数,高字节在前;
Operand2:操作数2,2字节,即操作参数,高字节在前。
上行帧是下位机向上位机返回的命令执行结果,其格式如下表2所示,本发明中的上行帧就是两字节的寄存器的值,高字节在前。
表2上行帧格式
本发明定义了两种下行帧:写寄存器命令帧和读寄存器命令帧,两种不同的命令帧的命令字和操作数的含义如下表3所示。通过这两种命令帧可以实现向某寄存器写入数值或者读出某地址的寄存器值的功能。
Command | Operand1 | Operand2 | 功能说明 | 返回结果 |
READ_REG(0x0001) | 地址addr | 0x0000 | 读出地址addr的寄存器值 | 寄存器值 |
WRITE_REG(0x0002) | 地址addr | 数值val | 将数值val写入地址addr的寄存器 | 无 |
表3读命令帧和写命令帧格式
本发明将上位机发起的所有控制命令抽象成为写寄存器命令和读寄存器命令。下位机的寄存器功能接口对于上位机来说是完全可见的。上位机通过发送写命令来实现对下位机的控制流程如图1所示,包括如下步骤:
步骤101,上位机确定需要下位机完成的功能;
步骤102,上位机将所述需要完成的功能分解为对相应的寄存器进行写操作的序列;
步骤103,上位机将构造并发送写寄存器命令帧,直至发送完毕:上位机将标识帧开始的字符作为帧头,将标识写操作命令的字符作为命令字,将所述需要写操作的寄存器的地址和该寄存器需要设置的数值作为操作数,依次将帧头、命令字、操作数写入写寄存器命令帧,发送给下位机;若需要对多个寄存器进行写操作,则构造多个写寄存器命令帧,依次发送给下位机;其中,所述操作数包括操作数1和操作数2,将所述需要写操作的寄存器的地址作为操作数1,将该寄存器需要设置的数值作为操作数2;
步骤104,所述下位机接收上位机发送过来的写寄存器命令帧并执行。
上位机通过发送读命令来实现对下位机的控制流程如图2所示,包括如下步骤:
步骤201,所述上位机构造并发送读寄存器命令帧:上位机将标识帧开始的字符作为帧头,将标识读操作命令的字符作为命令字,将所述需要读操作的寄存器的地址作为操作数,依次将帧头、命令字、操作数写入读寄存器命令帧,发送给下位机;其中,所述操作数包括操作数1和操作数2,将所述需要读操作的寄存器的地址作为操作数1,将操作数2设为0x0000;
步骤202,下位机接收然后通过发送上行帧向上位机返回需要读操作的寄存器的地址对应的两字节的寄存器的值;
步骤203,上位机读取下位机返回的上行帧。
本发明应用实例在中国移动多媒体广播演示系统中的解复用器和解调器之间的控制接口采用本发明所述方法实现解复用器对解调器的控制功能。解复用器是一块以freescale公司的MPC8270为主处理器的单板,完成上位机的功能。解调器是以一块DSP(Data Signal Processor,数据信号处理器)为处理核心的单板,完成下位机的功能。
解复用器和解调器之间的控制接口分为三层:物理层采用标准的RS232协议,异步数据层采用标准的UART(Universal Asynchronous ReceiveTransmit,通用异步收发器),其中起始位1比特,数据位8比特,停止位1比特,无校验比特。双方约定UART波特率设置为57600bps;数据链路层采用本发明中的方法。
解复用器在获取广播信道的信道参数后,根据不同的信道参数通过控制串口告知解调器选择哪些时隙的数据,以及这些时隙的调制方式。解调器收到这些命令后设置其内部的时隙选择寄存器、模式控制寄存器、复位寄存器来完成相应的功能。并且解复用器还可以通过串口获取解调器的LDPC(LowDesity Parity Codes,低密度校验码)错误计数、RS(Reed-Solomon,李德-所罗门)纠错错误计数等信息,了解解调器的工作状态。其中解复用器控制解调器完成时隙选择功能的流程如图3所示,包括如下步骤:
步骤301,解复用器从配置数据中获取调制模式和需要解调器选择的时隙号;
步骤302,解复用器通过串口向解调器发送写调制模式寄存器的下行帧;
步骤303,解复用器通过串口向解调器发送写时隙屏蔽寄存器的下行帧;
步骤304,解复用器通过串口向解调器发送复位解调器FPGA(FieldProgrammable Gate Array,现场可编程门阵列)的下行帧;
步骤305,解复用器通过串口向解调器发送读取调制模式寄存器的下行帧;
步骤306,解调器收到这些命令后设置其内部的时隙选择寄存器、模式控制寄存器、复位寄存器来完成相应的功能,然后返回其调制模式寄存器的值的上行帧;
步骤307,解复用器通过串口接收解调器返回的上行帧;
步骤308,解复用器检查调制模式正确性;
步骤309,解复用器通过串口向解调器发送读取时隙屏蔽寄存器的下行帧;
步骤310,解复用器通过串口接收解调器返回的时隙屏蔽寄存器内容的值的上行帧;
步骤311,解复用器检查解调器时隙设置正确性。
本发明所述方法,并不仅仅限于说明书和实施方式中所列运用。对本发明技术所属领域的普通技术人员来说,可根据本发明作出各种相应的改变和变形,而所有这些相应的改变和变形都属于本发明权利要求的保护范围。
Claims (7)
1.一种上位机和下位机之间的通信方法,其特征在于,上位机通过发送下行帧和接收上行帧与下位机进行通信。
2.如权利要求1所述方法,其特征在于,所述下行帧包括:写寄存器命令帧和读寄存器命令帧,所述上位机通过发送所述写寄存器命令帧或读寄存器命令帧来实现对下位机控制。
3.如权利要求1所述方法,其特征在于,所述下行帧或上行帧使用寄存器地址寻址方式,并使用固定长度的帧结构。
4.如权利要求2所述方法,其特征在于,所述上位机通过发送所述写寄存器命令帧来实现对下位机控制包括如下步骤:
(2.1)所述上位机确定需要下位机完成的功能;
(2.2)所述上位机将所述需要完成的功能分解为对相应的寄存器进行写操作的序列;
(2.3)所述上位机构造并发送写寄存器命令帧,直至发送完毕:上位机将标识帧开始的字符作为帧头,将标识写操作命令的字符作为命令字,将所述需要写操作的寄存器的地址和该寄存器需要设置的数值作为操作数,依次将帧头、命令字、操作数写入写寄存器命令帧,发送给下位机;若需要对多个寄存器进行写操作,则构造多个写寄存器命令帧,依次发送给下位机;
(2.4)所述下位机接收上位机发送过来的写寄存器命令帧并执行。
5.如权利要求2所述方法,其特征在于,所述上位机通过发送所述读寄存器命令帧来实现对下位机控制包括如下步骤:
(a)所述上位机构造并发送读寄存器命令帧:上位机将标识帧开始的字符作为帧头,将标识读操作命令的字符作为命令字,将所述需要读操作的寄存器的地址作为操作数,依次将帧头、命令字、操作数写入读寄存器命令帧,发送给下位机;
(b)所述下位机接收然后通过发送上行帧向上位机返回需要读操作的寄存器的地址对应的两字节的寄存器的值;
(c)所述上位机读取下位机返回的上行帧。
6.如权利要求4所述方法,其特征在于,步骤(2.3)中,所述操作数包括操作数1和操作数2,将所述需要写操作的寄存器的地址作为操作数1,将该寄存器需要设置的数值作为操作数2。
7.如权利要求5所述方法,其特征在于,步骤(a)中,所述操作数包括操作数1和操作数2,将所述需要读操作的寄存器的地址作为操作数1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710129759XA CN101193118B (zh) | 2007-07-25 | 2007-07-25 | 一种上位机和下位机之间的通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710129759XA CN101193118B (zh) | 2007-07-25 | 2007-07-25 | 一种上位机和下位机之间的通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101193118A true CN101193118A (zh) | 2008-06-04 |
CN101193118B CN101193118B (zh) | 2010-08-18 |
Family
ID=39487864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710129759XA Expired - Fee Related CN101193118B (zh) | 2007-07-25 | 2007-07-25 | 一种上位机和下位机之间的通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101193118B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645058B (zh) * | 2009-09-04 | 2012-12-19 | 成都市华为赛门铁克科技有限公司 | 命令处理方法、命令发送方法、装置及系统 |
US20130212309A1 (en) * | 2012-02-15 | 2013-08-15 | Silicon Image, Inc. | Communication bridging between devices via multiple bridge elements |
CN103713549A (zh) * | 2013-12-17 | 2014-04-09 | 吉林大学 | 控制交互系统中继控制卡 |
CN105959140A (zh) * | 2016-04-29 | 2016-09-21 | 北京东土科技股份有限公司 | 非网管型交换设备的在线调试方法及装置 |
CN108287805A (zh) * | 2018-01-12 | 2018-07-17 | 厦门大学 | 一种通用型下位单片机与上位机的通信方法与应用 |
CN108303669A (zh) * | 2018-03-09 | 2018-07-20 | 宁波三星医疗电气股份有限公司 | 一种提升智能电表校表效率的方法 |
CN108932171A (zh) * | 2018-06-15 | 2018-12-04 | 中国航发控制系统研究所 | 嵌入式软件交互方法 |
CN110958075A (zh) * | 2019-12-03 | 2020-04-03 | 浙江三维通信科技有限公司 | 信号屏蔽方法、系统、可读存储介质和设备 |
CN111818060A (zh) * | 2020-07-09 | 2020-10-23 | 厦门海为科技有限公司 | 一种支持混合及离散数据传输的通讯协议、方法及系统 |
CN113179216A (zh) * | 2021-04-23 | 2021-07-27 | 北京物芯科技有限责任公司 | 一种寄存器的远程配置方法、计算机设备及存储介质 |
CN114301992A (zh) * | 2021-12-29 | 2022-04-08 | 北京半导体专用设备研究所(中国电子科技集团公司第四十五研究所) | 一种数据传输方法及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1533114A (zh) * | 2003-03-24 | 2004-09-29 | 上海集成仪器仪表研究所有限公司 | 单主机、多主机、无主机方式的异步串行通讯协议 |
-
2007
- 2007-07-25 CN CN200710129759XA patent/CN101193118B/zh not_active Expired - Fee Related
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645058B (zh) * | 2009-09-04 | 2012-12-19 | 成都市华为赛门铁克科技有限公司 | 命令处理方法、命令发送方法、装置及系统 |
US20130212309A1 (en) * | 2012-02-15 | 2013-08-15 | Silicon Image, Inc. | Communication bridging between devices via multiple bridge elements |
US9588931B2 (en) * | 2012-02-15 | 2017-03-07 | Lattice Semiconductor Corporation | Communication bridging between devices via multiple bridge elements |
CN103713549A (zh) * | 2013-12-17 | 2014-04-09 | 吉林大学 | 控制交互系统中继控制卡 |
CN105959140A (zh) * | 2016-04-29 | 2016-09-21 | 北京东土科技股份有限公司 | 非网管型交换设备的在线调试方法及装置 |
CN108287805A (zh) * | 2018-01-12 | 2018-07-17 | 厦门大学 | 一种通用型下位单片机与上位机的通信方法与应用 |
CN108303669A (zh) * | 2018-03-09 | 2018-07-20 | 宁波三星医疗电气股份有限公司 | 一种提升智能电表校表效率的方法 |
CN108303669B (zh) * | 2018-03-09 | 2020-08-14 | 宁波三星医疗电气股份有限公司 | 一种提升智能电表校表效率的方法 |
CN108932171A (zh) * | 2018-06-15 | 2018-12-04 | 中国航发控制系统研究所 | 嵌入式软件交互方法 |
CN108932171B (zh) * | 2018-06-15 | 2022-04-01 | 中国航发控制系统研究所 | 嵌入式软件交互方法 |
CN110958075A (zh) * | 2019-12-03 | 2020-04-03 | 浙江三维通信科技有限公司 | 信号屏蔽方法、系统、可读存储介质和设备 |
CN110958075B (zh) * | 2019-12-03 | 2021-04-23 | 浙江三维通信科技有限公司 | 信号屏蔽方法、系统、可读存储介质和设备 |
CN111818060A (zh) * | 2020-07-09 | 2020-10-23 | 厦门海为科技有限公司 | 一种支持混合及离散数据传输的通讯协议、方法及系统 |
CN113179216A (zh) * | 2021-04-23 | 2021-07-27 | 北京物芯科技有限责任公司 | 一种寄存器的远程配置方法、计算机设备及存储介质 |
CN114301992A (zh) * | 2021-12-29 | 2022-04-08 | 北京半导体专用设备研究所(中国电子科技集团公司第四十五研究所) | 一种数据传输方法及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101193118B (zh) | 2010-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101193118B (zh) | 一种上位机和下位机之间的通信方法 | |
CN102667742B (zh) | 用于软件定义无线电平台的无线电控制板 | |
CN102609222B (zh) | 基于命令描述符的闪存控制方法 | |
CN102045334A (zh) | 协议转换方法和装置 | |
CN101246462B (zh) | 外围通讯接口的扩展装置及方法 | |
CN102725779A (zh) | 用于低功率无线应用中的先进通信的设备和方法 | |
CN103926592B (zh) | 一种北斗rd通信虚拟指挥机的实现方法 | |
CN103258228A (zh) | 超高频rfid读写器、基带soc芯片及接口控制方法 | |
CN101140543B (zh) | 支持flash页操作与流水线纠错码的数据交换装置与方法 | |
CN102521181A (zh) | 多通道异型雷达数据实时解析集中收发卡及其通信方法 | |
EP2281358B1 (en) | Efficient parallel sub-packet decoding using multiple decoders, controller and task instructions | |
CN102892142B (zh) | 自适应选择中继方案的中继传输系统及方法 | |
CN104320317A (zh) | 一种以太网物理层芯片状态的传送方法和装置 | |
CN103235961A (zh) | 一种基带控制芯片和超高频射频读写装置 | |
CN203224892U (zh) | 一种超高频rfid读写器的基带soc芯片及读写器 | |
CN101707510B (zh) | 一种高速Turbo译码方法和装置 | |
CN105389282B (zh) | 处理器和arinc429总线的通信方法 | |
CN105187162B (zh) | 一种多粒度并行解速率匹配方法和装置 | |
CN101089831A (zh) | 一种提高存储卡数据写入速度的方法 | |
CN101784077A (zh) | 一种td_hsupa上行数据处理系统和方法 | |
CN202818528U (zh) | 交换机以及光通讯设备 | |
CN104885392A (zh) | 一种前向纠错码码字同步的方法、设备与系统 | |
CN101478790B (zh) | 一种速率匹配和解速率匹配的方法和装置 | |
CN101388745B (zh) | 一种应用于无线多媒体传感网的并行信道解码装置 | |
CN205281511U (zh) | 一种基于安全模块的超高频阅读器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100818 Termination date: 20160725 |
|
CF01 | Termination of patent right due to non-payment of annual fee |