CN106776402A - 一种基于单片机的串行通信控制系统及方法 - Google Patents
一种基于单片机的串行通信控制系统及方法 Download PDFInfo
- Publication number
- CN106776402A CN106776402A CN201611174380.6A CN201611174380A CN106776402A CN 106776402 A CN106776402 A CN 106776402A CN 201611174380 A CN201611174380 A CN 201611174380A CN 106776402 A CN106776402 A CN 106776402A
- Authority
- CN
- China
- Prior art keywords
- processing module
- control parameter
- data
- serial
- chip microcomputer
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0004—Parallel ports, e.g. centronics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
Abstract
本发明提供了一种基于单片机的串行通信控制系统及方法,报考程序存储区、数据存储区、232串行接口、SPI串行接口、8位并行接口和中断信号线;程序存储区存储给处理模块的控制参数;数据存储区存储处理模块发送给单片机的应用数据;232串行接口连接上位机和单片机的通信;SPI串行接口用于单片机与处理模块之间传送控制参数的通信线路;处理模块将接收单片机发送的控制参数和给单片机回送应用数据;8位并行接口传送处理模块生成的应用数据;中断信号线给单片机返回处理模块产生的数据中断信号。本发明所需信号线非常少,结构简单,增加了扩展性,通用性强,成本大大降低。
Description
技术领域
本发明涉及通信控制领域,尤其涉及一种串行通信控制系统及方法,用于单片机与计算机、处理模块的通信。
背景技术
随着电子技术的发展和电子系统需求的增长,各种大小型通信控制系统层出不穷,通常其数据通信控制多采用专用控制器来实现。采用专用控制器虽然能够完成通信控制的功能,但由于其是专门为某一特定应用场景设计,就势必导致其具备应用局限性,更换了应用场景原有控制器就不兼容了。同时采用专用控制器就必须为其预留电路接口,增加了设计和结构的复杂度。而往往专用控制器价格昂贵,不利于控制开发成本,在简单的系统应用中使用也没有太大的意义。
发明内容
为了克服现有技术的不足,本发明提供一种基于单片机的串行通信控制系统。
本发明解决其技术问题所采用的技术方案是:一种基于单片机的串行通信控制系统,包括上位机、单片机和处理模块;所述单片机内部配置程序存储区和数据存储区,外部配置232串行接口、SPI串行接口、8位并行接口和中断信号线;所述程序存储区用于存储给处理模块的控制参数;所述数据存储区用于存储处理模块发送给单片机的应用数据;所述232串行接口用于连接上位机和单片机的通信;所述SPI串行接口用于单片机与处理模块之间传送控制参数的通信线路;所述处理模块将接收单片机发送的控制参数和给单片机回送应用数据;8位并行接口用来传送处理模块生成的应用数据;中断信号线是给单片机返回处理模块产生的数据中断信号。
所述232串行接口通信线路采用两线制,包括TXD和RXD信号,分别代表发送信号线和接收信号线。
所述SPI串行接口通信线路采用四线制,包括SCK、MOSI、MISO、NSS信号,分别表示时钟信号、主发送从接收信号、主接收从发送信号、设备选择信号。
所述数据中断信号采用下降沿触发,在处理模块生成应用数据后,中断信号线上的电平被拉低设定时长。
本发明还提供一种基于上述系统的串行通信控制方法,包括以下步骤:
(1)初始化程序存储区的控制参数;
(2)等待上位机发送的串口指令,若没有收到串口指令则进入步骤(3),若收到串口指令则进入步骤(6);
(3)判断串口等待是否超时,若超时则进入步骤(4),若不超时则返回步骤(2);
(4)将程序存储区的控制参数发送给处理模块;处理模块将外部输入的信号进行处理,处理后生成应用数据并产生中断信号;
(5)等待数据中断,如果检测到中断则把处理模块生成的应用数据存储到数据存储区;没有检测到中断则继续等待数据中断;
(6)判断串口指令是否是有效指令,并根据有效指令执行相应函数。
所述的串口指令中,有效指令包括更改程序存储区的控制参数、返回程序存储区的控制参数、发送控制参数给处理模块、正常运行;如收到的串口指令数据不在有效指令之列,则判断为无效指令;所述函数包含串口接收函数、串口发送函数、控制参数下发函数、读取控制参数函数、写控制参数函数、数据存储函数;串口接收函数通过外部中断来告知单片机检测到串口接收缓冲区收到上位机发送的数据,并在判断满足接收条件完毕之后,产生接收完毕握手信号;串口发送函数用来返回单片机发送给上位机的数据;参数下发函数是通过SPI接口将程序存储区中的控制参数发送给处理模块;读取控制参数函数将访问程序存储区的用户区,将其中表示控制参数的数据读取出来;写控制参数函数将表示控制参数的数据写入到程序存储区的用户区;数据存储函数用于将来自处理模块的应用数据存储到数据存储区。
所述有效指令用一个单字节的无符号数表示。
所述表示有效指令的单字节无符号数取自串口接收数据的第一个字节。
本发明的有益效果是:
(1)针对外围模块通信方式使用相应串行通信方式,不仅能够发挥不同串行通信方式的通信速率,又能适应不同通信方式的外围设备,增加了扩展性。
(2)通过在单片机上实现串行通信控制,所需信号线非常少,结构简单,能有效节省印制电路板的空间。
(3)因结构简单可以很方便的移植到不同的应用场景中,通用性强。而且单片机成本较专用控制器成本大大降低。
附图说明
图1是本发明所提供的一种基于单片机的串行通信控制系统的结构示意图;
图2是本发明所提供的一种基于单片机的串行通信控制方法的流程图;
图3是本发明所提供的一种基于单片机的串行通信控制方法中所述根据指令执行相应函数的流程图。
具体实施方式
下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。
本发明提供一种基于单片机的串行通信控制系统,该系统包括上位机、单片机和处理模块。所述单片机内部配置程序存储区,数据存储区,外部配置232串行接口,SPI串行接口,8位并行接口,中断信号线;所述程序存储区用于存储给处理模块的控制参数;所述数据存储区用于存储处理模块发送给单片机的应用数据;所述232串行接口用于连接上位机和单片机的通信;所述SPI串行接口用于单片机与处理模块之间传送控制参数的通信线路;所述处理模块将接收单片机发送的控制参数和给单片机回送应用数据。8位并行接口用来传送处理模块生成的应用数据;中断信号线是给单片机返回处理模块产生的数据中断信号。
较佳地,所述232串行接口通信线路采用两线制,包括TXD和RXD信号,分别代表发送信号线和接收信号线。
较佳地,所述SPI串行接口通信线路采用四线制,包括SCK、MOSI、MISO、NSS信号,分别表示时钟信号、主发送从接收信号、主接收从发送信号、设备选择信号。
较佳地,中断信号采用下降沿触发。在处理模块生成应用数据后,中断信号线上的电平被拉低一段时间。
本发明提供一种基于单片机的串行通信控制方法,该方法包括步骤:
步骤1,等待串口指令,等待上位机给串口发送指令数据;
步骤2,判断串口等待是否超时,判断串口等待时间是否超过规定时间;
步骤3,下发控制参数,将程序存储区的控制参数发送给处理模块;
步骤4,等待数据中断,处理模块在生成应用数据后将产生中断信号;
步骤5,判断串口指令,并根据串口指令执行相应函数。
在本发明所述方法中,在执行所述步骤1等待串口指令时,如果没有收到串口指令数据则会执行所述步骤2判断串口等待是否超时;若收到串口指令数据则会执行所述步骤5判断串口指令。
在本发明所述方法中,在执行所述步骤2判断串口等待超时时,满足超时条件将判断为超时,将执行步骤3下发控制参数;不满足超时,则继续执行步骤1等待串口指令。
在本发明所述方法中,在执行所述步骤4等待数据中断时,处理模块将外部输入的信号进行处理,处理后生成应用数据并产生中断信号。如果检测到中断,则把处理模块准备好的应用数据存储到数据存储区;没有检测到中断,则继续在步骤4等待数据中断。
在本发明所述方法中,在执行所述步骤5判断串口指令并根据串口指令执行相应函数时,有效指令包括更改程序存储区的控制参数,返回程序存储区的控制参数,发送控制参数给处理模块,正常运行。如收到的串口指令数据不在有效指令之列,则判断为无效指令。步骤5中所述函数包含串口接收函数、串口发送函数、控制参数下发函数、读取控制参数函数、写控制参数函数、数据存储函数。串口接收函数通过外部中断来告知单片机检测到串口接收缓冲区收到上位机发送的数据,并在判断满足接收条件完毕之后,产生接收完毕握手信号;串口发送函数用来返回单片机发送给上位机的数据;参数下发函数是通过SPI接口将程序存储区中的控制参数发送给处理模块;读取控制参数函数将访问程序存储区的用户区,将其中表示控制参数的数据读取出来;写控制参数函数将表示控制参数的数据写入到程序存储区的用户区;数据存储函数用于将来自处理模块的应用数据存储到数据存储区。
较佳地,所述有效指令用一个单字节的无符号数表示。
较佳地,所述表示有效指令的单字节无符号数取自串口接收数据的第一个字节。
本发明实施例所提供的一种基于单片机的串行通信控制系统包括上位机、单片机和处理模块,如图1所示。
在单片机内部配置有程序存储区和数据存储区,程序存储区用于存储给处理模块的控制参数,数据存储区用于存储来自处理模块的应用数据。
在单片机的外围设置有232串行接口和SPI串行接口,8位并行数据接口,INT#中断信号线。232串行接口通过TXD、RXD信号线与上位机物理连接。SPI串行接口通过SCK、MOSI、MISO、NSS信号线与处理模块物理连接。8位并行数据接口通过D0-D7信号线与上位机连接。中断信号线通过INT#将处理模块与单片机连接起来。
本发明实施例所提供的一种基于单片机的串行通信控制方法的流程图如图2所示,实现步骤如下:
首先等待串口指令,如果本次未收到串口指令,则检查串口等待是否超时,未超时则继续等待串口指令;如果串口等待超时,则开始下发控制参数。如果收到串口指令,则对串口指令进行判断。
执行下发控制参数时,从程序存储区读取控制参数,通过调用控制参数下发函数,把控制参数发送给处理模块。下发控制参数执行完毕后,则等待数据中断。在未检测到数据中断时,将一直等待。检测到数据中断后将执行存储应用数据。
执行存储应用数据时,单片机通过8位并口接收处理模块生成的应用数据,并存储到片内的数据存储区。存储应用数据完毕后,则继续等待数据中断。
图2中module命名的方框表示根据指令执行相应函数的过程,为了进一步阐述这个过程,将module扩展之后用图3表示。图中点划线框表示函数。
收到串口指令后,将表示指令的单字节无符号数与表示有效指令的单字节无符号数进行一一比对:
为指令1时,更改程序存储区的控制参数,通过调用写控制参数函数,从串口缓冲区获取控制参数然后写入到程序存储区;
为指令2时,返回程序存储区的控制参数,通过读取控制参数函数,从程序存储区读出控制参数,并调用串口发送函数将控制参数发送给上位机;
为指令3时,给处理模块发送控制参数,通过控制参数下发函数,先从程序存储区获取控制参数,通过SPI总线将控制参数发送给处理模块;
为指令4时,将不再响应串口发送的指令,切换到正常运行模式,紧接着将控制参数下发给处理模块。最后回到所述方法中下发控制参数执行完毕之后的步骤。
Claims (8)
1.一种基于单片机的串行通信控制系统,包括上位机、单片机和处理模块,其特征在于:所述单片机内部配置程序存储区和数据存储区,外部配置232串行接口、SPI串行接口、8位并行接口和中断信号线;所述程序存储区用于存储给处理模块的控制参数;所述数据存储区用于存储处理模块发送给单片机的应用数据;所述232串行接口用于连接上位机和单片机的通信;所述SPI串行接口用于单片机与处理模块之间传送控制参数的通信线路;所述处理模块将接收单片机发送的控制参数和给单片机回送应用数据;8位并行接口用来传送处理模块生成的应用数据;中断信号线是给单片机返回处理模块产生的数据中断信号。
2.根据权利要求1所述的基于单片机的串行通信控制系统,其特征在于:所述232串行接口通信线路采用两线制,包括TXD和RXD信号,分别代表发送信号线和接收信号线。
3.根据权利要求1所述的基于单片机的串行通信控制系统,其特征在于:所述SPI串行接口通信线路采用四线制,包括SCK、MOSI、MISO、NSS信号,分别表示时钟信号、主发送从接收信号、主接收从发送信号、设备选择信号。
4.根据权利要求1所述的基于单片机的串行通信控制系统,其特征在于:所述数据中断信号采用下降沿触发,在处理模块生成应用数据后,中断信号线上的电平被拉低设定时长。
5.一种利用权利要求1所述系统的基于单片机的串行通信控制方法,其特征在于包括下述步骤:
(1)初始化程序存储区的控制参数;
(2)等待上位机发送的串口指令,若没有收到串口指令则进入步骤(3),若收到串口指令则进入步骤(6);
(3)判断串口等待是否超时,若超时则进入步骤(4),若不超时则返回步骤(2);
(4)将程序存储区的控制参数发送给处理模块;处理模块将外部输入的信号进行处理,处理后生成应用数据并产生中断信号;
(5)等待数据中断,如果检测到中断则把处理模块生成的应用数据存储到数据存储区;没有检测到中断则继续等待数据中断;
(6)判断串口指令是否是有效指令,并根据有效指令执行相应函数。
6.根据权利要求5所述的基于单片机的串行通信控制方法,其特征在于:所述的串口指令中,有效指令包括更改程序存储区的控制参数、返回程序存储区的控制参数、发送控制参数给处理模块、正常运行;如收到的串口指令数据不在有效指令之列,则判断为无效指令;所述函数包含串口接收函数、串口发送函数、控制参数下发函数、读取控制参数函数、写控制参数函数、数据存储函数;串口接收函数通过外部中断来告知单片机检测到串口接收缓冲区收到上位机发送的数据,并在判断满足接收条件完毕之后,产生接收完毕握手信号;串口发送函数用来返回单片机发送给上位机的数据;参数下发函数是通过SPI接口将程序存储区中的控制参数发送给处理模块;读取控制参数函数将访问程序存储区的用户区,将其中表示控制参数的数据读取出来;写控制参数函数将表示控制参数的数据写入到程序存储区的用户区;数据存储函数用于将来自处理模块的应用数据存储到数据存储区。
7.根据权利要求5所述的基于单片机的串行通信控制方法,其特征在于:所述有效指令用一个单字节的无符号数表示。
8.根据权利要求7所述的基于单片机的串行通信控制方法,其特征在于:所述表示有效指令的单字节无符号数取自串口接收数据的第一个字节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611174380.6A CN106776402A (zh) | 2016-12-19 | 2016-12-19 | 一种基于单片机的串行通信控制系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611174380.6A CN106776402A (zh) | 2016-12-19 | 2016-12-19 | 一种基于单片机的串行通信控制系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106776402A true CN106776402A (zh) | 2017-05-31 |
Family
ID=58889676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611174380.6A Pending CN106776402A (zh) | 2016-12-19 | 2016-12-19 | 一种基于单片机的串行通信控制系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776402A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111885431A (zh) * | 2020-08-03 | 2020-11-03 | 北京环境特性研究所 | 一种通信控制方法和装置 |
CN114168500A (zh) * | 2021-12-01 | 2022-03-11 | 武汉港迪技术股份有限公司 | 一种无系统的单片机多接口扩展方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851645A (zh) * | 2006-01-17 | 2006-10-25 | 华为技术有限公司 | 一种单片机系统在运行中升级的装置和方法 |
CN101794250A (zh) * | 2010-01-04 | 2010-08-04 | 山东超越数控电子有限公司 | 一种便捷式检测仿真计算机的方法 |
CN202870808U (zh) * | 2012-07-04 | 2013-04-10 | 四川九洲电器集团有限责任公司 | 一种spi串口模块的fpga实现装置 |
CN103149885A (zh) * | 2011-12-06 | 2013-06-12 | 沈阳中科博微自动化技术有限公司 | 一种低功耗工业无线网络数据传输设备及使用方法 |
CN204377209U (zh) * | 2015-01-22 | 2015-06-03 | 淮阴工学院 | 检测路灯光强的无线传感系统 |
-
2016
- 2016-12-19 CN CN201611174380.6A patent/CN106776402A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851645A (zh) * | 2006-01-17 | 2006-10-25 | 华为技术有限公司 | 一种单片机系统在运行中升级的装置和方法 |
CN101794250A (zh) * | 2010-01-04 | 2010-08-04 | 山东超越数控电子有限公司 | 一种便捷式检测仿真计算机的方法 |
CN103149885A (zh) * | 2011-12-06 | 2013-06-12 | 沈阳中科博微自动化技术有限公司 | 一种低功耗工业无线网络数据传输设备及使用方法 |
CN202870808U (zh) * | 2012-07-04 | 2013-04-10 | 四川九洲电器集团有限责任公司 | 一种spi串口模块的fpga实现装置 |
CN204377209U (zh) * | 2015-01-22 | 2015-06-03 | 淮阴工学院 | 检测路灯光强的无线传感系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111885431A (zh) * | 2020-08-03 | 2020-11-03 | 北京环境特性研究所 | 一种通信控制方法和装置 |
CN114168500A (zh) * | 2021-12-01 | 2022-03-11 | 武汉港迪技术股份有限公司 | 一种无系统的单片机多接口扩展方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2781815B2 (ja) | 専用コントローラ無しで動作する集積化modem | |
CN202870808U (zh) | 一种spi串口模块的fpga实现装置 | |
CN105677598B (zh) | 基于i2c接口快速读取多个mems传感器数据的模块和方法 | |
CN113190291B (zh) | 一种基于片上网络数据采集的可配置协议转换系统及方法 | |
CN202533933U (zh) | 可编程逻辑门阵列的i2c接口配置电路及可编程逻辑门阵列 | |
US20070168580A1 (en) | Apparatus to improve the firmware efficiency for a multiframe serial interface | |
CN106776402A (zh) | 一种基于单片机的串行通信控制系统及方法 | |
CN101393542B (zh) | 通过gpio端口支持usb接口的嵌入式设备及方法 | |
CN101369948B (zh) | 一种实现低功耗的通信系统 | |
CN109656856A (zh) | 利用fpga实现非复用总线与复用总线互联装置及方法 | |
CN103631649A (zh) | 中断处理方法、装置及中断控制器 | |
CN109388606A (zh) | 一种芯片内可重构的串行总线控制器 | |
CN212647461U (zh) | 一种基于pci总线的同步或异步串行通讯控制电路 | |
CN200944235Y (zh) | 数字信号处理器同步串口与异步串行设备的接口装置 | |
CN115904844A (zh) | 一种用于打印boot信息的uart仿真模型及其工作方法 | |
EP2506659B1 (en) | Device and method for enhancing flexibility of interface between 3g communication module and application processor | |
CN201378316Y (zh) | 通用输入/输出接口扩展电路和具有该电路的移动终端 | |
CN113971148A (zh) | 基于linux实时操作系统的PCIE实时网卡数据传输方法及装置 | |
CN110825684A (zh) | 串行端口接口整合输出系统 | |
CN208190652U (zh) | 一种全双工通用同步异步串行收发器的主板 | |
CN111832049B (zh) | 一种基于spi的数据传输方法及系统 | |
CN218413458U (zh) | 采用三个串行外设接口代替ssi多从机的通信装置 | |
CN111832047B (zh) | 一种spi数据传输方法及系统 | |
CN218416404U (zh) | 一种采用双spi实现ssi的从机设备 | |
CN216697258U (zh) | 一种数字接口转换装置 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170531 |