CN106776402A - 一种基于单片机的串行通信控制系统及方法 - Google Patents

一种基于单片机的串行通信控制系统及方法 Download PDF

Info

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
data
control parameter
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
Application number
CN201611174380.6A
Other languages
English (en)
Inventor
段晗晗
史伊朝
李刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 20 Research Institute
Original Assignee
CETC 20 Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CETC 20 Research Institute filed Critical CETC 20 Research Institute
Priority to CN201611174380.6A priority Critical patent/CN106776402A/zh
Publication of CN106776402A publication Critical patent/CN106776402A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial port, e.g. RS232C
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0004Parallel ports, e.g. centronics

Abstract

本发明提供了一种基于单片机的串行通信控制系统及方法,报考程序存储区、数据存储区、232串行接口、SPI串行接口、8位并行接口和中断信号线;程序存储区存储给处理模块的控制参数;数据存储区存储处理模块发送给单片机的应用数据;232串行接口连接上位机和单片机的通信;SPI串行接口用于单片机与处理模块之间传送控制参数的通信线路;处理模块将接收单片机发送的控制参数和给单片机回送应用数据;8位并行接口传送处理模块生成的应用数据;中断信号线给单片机返回处理模块产生的数据中断信号。本发明所需信号线非常少,结构简单,增加了扩展性,通用性强,成本大大降低。

Description

一种基于单片机的串行通信控制系统及方法
技术领域
[0001] 本发明涉及通信控制领域,尤其涉及一种串行通信控制系统及方法,用于单片机 与计算机、处理模块的通信。
背景技术
[0002] 随着电子技术的发展和电子系统需求的增长,各种大小型通信控制系统层出不 穷,通常其数据通信控制多采用专用控制器来实现。采用专用控制器虽然能够完成通信控 制的功能,但由于其是专门为某一特定应用场景设计,就势必导致其具备应用局限性,更换 了应用场景原有控制器就不兼容了。同时采用专用控制器就必须为其预留电路接口,增加 了设计和结构的复杂度。而往往专用控制器价格昂贵,不利于控制开发成本,在简单的系统 应用中使用也没有太大的意义。
发明内容
[0003] 为了克服现有技术的不足,本发明提供一种基于单片机的串行通信控制系统。
[0004] 本发明解决其技术问题所采用的技术方案是:一种基于单片机的串行通信控制系 统,包括上位机、单片机和处理模块;所述单片机内部配置程序存储区和数据存储区,外部 配置232串行接口、SPI串行接口、8位并行接口和中断信号线;所述程序存储区用于存储给 处理模块的控制参数;所述数据存储区用于存储处理模块发送给单片机的应用数据;所述 232串行接口用于连接上位机和单片机的通信;所述SPI串行接口用于单片机与处理模块之 间传送控制参数的通信线路;所述处理模块将接收单片机发送的控制参数和给单片机回送 应用数据;8位并行接口用来传送处理模块生成的应用数据;中断信号线是给单片机返回处 理模块产生的数据中断信号。
[0005] 所述232串行接口通信线路采用两线制,包括TXD和RXD信号,分别代表发送信号线 和接收信号线。
[0006] 所述SPI串行接口通信线路采用四线制,包括30^031、1030^33信号,分别表示 时钟信号、主发送从接收信号、主接收从发送信号、设备选择信号。
[0007] 所述数据中断信号采用下降沿触发,在处理模块生成应用数据后,中断信号线上 的电平被拉低设定时长。
[0008] 本发明还提供一种基于上述系统的串行通信控制方法,包括以下步骤:
[0009] (1)初始化程序存储区的控制参数;
[0010] (2)等待上位机发送的串口指令,若没有收到串口指令则进入步骤(3),若收到串 口指令则进入步骤(6);
[0011] (3)判断串口等待是否超时,若超时则进入步骤⑷,若不超时则返回步骤⑵;
[0012] (4)将程序存储区的控制参数发送给处理模块;处理模块将外部输入的信号进行 处理,处理后生成应用数据并产生中断信号;
[0013] (5)等待数据中断,如果检测到中断则把处理模块生成的应用数据存储到数据存 储区;没有检测到中断则继续等待数据中断;
[0014] ⑹判断串口指令是否是有效指令,并根据有效指令执行相应函数。
[0015] 所述的串口指令中,有效指令包括更改程序存储区的控制参数、返回程序存储区 的控制参数、发送控制参数给处理模块、正常运行;如收到的串口指令数据不在有效指令之 列,则判断为无效指令;所述函数包含串口接收函数、串口发送函数、控制参数下发函数、读 取控制参数函数、写控制参数函数、数据存储函数;串口接收函数通过外部中断来告知单片 机检测到串口接收缓冲区收到上位机发送的数据,并在判断满足接收条件完毕之后,产生 接收完毕握手信号;串口发送函数用来返回单片机发送给上位机的数据;参数下发函数是 通过SPI接口将程序存储区中的控制参数发送给处理模块;读取控制参数函数将访问程序 存储区的用户区,将其中表示控制参数的数据读取出来;写控制参数函数将表示控制参数 的数据写入到程序存储区的用户区;数据存储函数用于将来自处理模块的应用数据存储到 数据存储区。
[0016] 所述有效指令用一个单字节的无符号数表示。
[0017] 所述表示有效指令的单字节无符号数取自串口接收数据的第一个字节。
[0018] 本发明的有益效果是:
[0019] (1)针对外围模块通信方式使用相应串行通信方式,不仅能够发挥不同串行通信 方式的通信速率,又能适应不同通信方式的外围设备,增加了扩展性。
[0020] (2)通过在单片机上实现串行通信控制,所需信号线非常少,结构简单,能有效节 省印制电路板的空间。
[0021] (3)因结构简单可以很方便的移植到不同的应用场景中,通用性强。而且单片机成 本较专用控制器成本大大降低。
附图说明
[0022]图1是本发明所提供的一种基于单片机的串行通信控制系统的结构示意图;
[0023]图2是本发明所提供的一种基于单片机的串行通信控制方法的流程图;
[0024]图3是本发明所提供的一种基于单片机的串行通信控制方法中所述根据指令执行 相应函数的流程图。
具体实施方式
[0025] 下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施 例。
[0026] 本发明提供一种基于单片机的串行通信控制系统,该系统包括上位机、单片机和 处理模块。所述单片机内部配置程序存储区,数据存储区,外部配置232串行接口,SPI串行 接口,8位并行接口,中断信号线;所述程序存储区用于存储给处理模块的控制参数;所述数 据存储区用于存储处理模块发送给单片机的应用数据;所述232串行接口用于连接上位机 和单片机的通信;所述SPI串行接口用于单片机与处理模块之间传送控制参数的通信线路; 所述处理模块将接收单片机发送的控制参数和给单片机回送应用数据。8位并行接口用来 传送处理模块生成的应用数据;中断信号线是给单片机返回处理模块产生的数据中断信 号。
[0027] 较佳地,所述232串行接口通信线路采用两线制,包括TXD和RXD信号,分别代表发 送信号线和接收信号线。
[0028] 较佳地,所述SPI串行接口通信线路采用四线制,包括SCK、M0SI、MISO、NSS信号,分 别表示时钟信号、主发送从接收信号、主接收从发送信号、设备选择信号。
[0029] 较佳地,中断信号采用下降沿触发。在处理模块生成应用数据后,中断信号线上的 电平被拉低一段时间。
[0030] 本发明提供一种基于单片机的串行通信控制方法,该方法包括步骤:
[0031] 步骤1,等待串口指令,等待上位机给串口发送指令数据;
[0032] 步骤2,判断串口等待是否超时,判断串口等待时间是否超过规定时间;
[0033] 步骤3,下发控制参数,将程序存储区的控制参数发送给处理模块;
[0034] 步骤4,等待数据中断,处理模块在生成应用数据后将产生中断信号;
[0035] 步骤5,判断串口指令,并根据串口指令执行相应函数。
[0036] 在本发明所述方法中,在执行所述步骤1等待串口指令时,如果没有收到串口指令 数据则会执行所述步骤2判断串口等待是否超时;若收到串口指令数据则会执行所述步骤5 判断串口指令。
[0037] 在本发明所述方法中,在执行所述步骤2判断串口等待超时时,满足超时条件将判 断为超时,将执行步骤3下发控制参数;不满足超时,则继续执行步骤1等待串口指令。
[0038] 在本发明所述方法中,在执行所述步骤4等待数据中断时,处理模块将外部输入的 信号进行处理,处理后生成应用数据并产生中断信号。如果检测到中断,则把处理模块准备 好的应用数据存储到数据存储区;没有检测到中断,则继续在步骤4等待数据中断。
[0039] 在本发明所述方法中,在执行所述步骤5判断串口指令并根据串口指令执行相应 函数时,有效指令包括更改程序存储区的控制参数,返回程序存储区的控制参数,发送控制 参数给处理模块,正常运行。如收到的串口指令数据不在有效指令之列,则判断为无效指 令。步骤5中所述函数包含串口接收函数、串口发送函数、控制参数下发函数、读取控制参数 函数、写控制参数函数、数据存储函数。串口接收函数通过外部中断来告知单片机检测到串 口接收缓冲区收到上位机发送的数据,并在判断满足接收条件完毕之后,产生接收完毕握 手信号;串口发送函数用来返回单片机发送给上位机的数据;参数下发函数是通过SPI接口 将程序存储区中的控制参数发送给处理模块;读取控制参数函数将访问程序存储区的用户 区,将其中表示控制参数的数据读取出来;写控制参数函数将表示控制参数的数据写入到 程序存储区的用户区;数据存储函数用于将来自处理模块的应用数据存储到数据存储区。
[0040] 较佳地,所述有效指令用一个单字节的无符号数表示。
[0041] 较佳地,所述表示有效指令的单字节无符号数取自串口接收数据的第一个字节。
[0042] 本发明实施例所提供的一种基于单片机的串行通信控制系统包括上位机、单片机 和处理模块,如图1所示。
[0043] 在单片机内部配置有程序存储区和数据存储区,程序存储区用于存储给处理模块 的控制参数,数据存储区用于存储来自处理模块的应用数据。
[0044] 在单片机的外围设置有232串行接口和SPI串行接口,8位并行数据接口,INT#中断 信号线。232串行接口通过TXD、RXD信号线与上位机物理连接。SPI串行接口通过SCK、M0SI、 MIS0、NSS信号线与处理模块物理连接。8位并行数据接口通过D0-D7信号线与上位机连接。 中断信号线通过INT#将处理模块与单片机连接起来。
[0045]本发明实施例所提供的一种基于单片机的串行通信控制方法的流程图如图2所 示,实现步骤如下:
[0046] 首先等待串口指令,如果本次未收到串口指令,则检查串口等待是否超时,未超时 则继续等待串口指令;如果串口等待超时,则开始下发控制参数。如果收到串口指令,则对 串口指令进行判断。
[0047] 执行下发控制参数时,从程序存储区读取控制参数,通过调用控制参数下发函数, 把控制参数发送给处理模块。下发控制参数执行完毕后,则等待数据中断。在未检测到数据 中断时,将一直等待。检测到数据中断后将执行存储应用数据。
[0048] 执行存储应用数据时,单片机通过8位并口接收处理模块生成的应用数据,并存储 到片内的数据存储区。存储应用数据完毕后,则继续等待数据中断。
[0049] 图2中module命名的方框表示根据指令执行相应函数的过程,为了进一步阐述这 个过程,将modu 1 e扩展之后用图3表示。图中点划线框表示函数。
[0050] 收到串口指令后,将表示指令的单字节无符号数与表示有效指令的单字节无符号 数进行一一比对:
[0051] 为指令1时,更改程序存储区的控制参数,通过调用写控制参数函数,从串口缓冲 区获取控制参数然后写入到程序存储区;
[0052] 为指令2时,返回程序存储区的控制参数,通过读取控制参数函数,从程序存储区 读出控制参数,并调用串口发送函数将控制参数发送给上位机;
[0053] 为指令3时,给处理模块发送控制参数,通过控制参数下发函数,先从程序存储区 获取控制参数,通过SPI总线将控制参数发送给处理模块;
[0054] 为指令4时,将不再响应串口发送的指令,切换到正常运行模式,紧接着将控制参 数下发给处理模块。最后回到所述方法中下发控制参数执行完毕之后的步骤。

Claims (8)

1. 一种基于单片机的串行通信控制系统,包括上位机、单片机和处理模块,其特征在 于:所述单片机内部配置程序存储区和数据存储区,外部配置232串行接口、SPI串行接口、8 位并行接口和中断信号线;所述程序存储区用于存储给处理模块的控制参数;所述数据存 储区用于存储处理模块发送给单片机的应用数据;所述232串行接口用于连接上位机和单 片机的通信;所述SPI串行接口用于单片机与处理模块之间传送控制参数的通信线路;所述 处理模块将接收单片机发送的控制参数和给单片机回送应用数据;8位并行接口用来传送 处理模块生成的应用数据;中断信号线是给单片机返回处理模块产生的数据中断信号。
2. 根据权利要求1所述的基于单片机的串行通信控制系统,其特征在于:所述232串行 接口通信线路采用两线制,包括TXD和RXD信号,分别代表发送信号线和接收信号线。
3. 根据权利要求1所述的基于单片机的串行通信控制系统,其特征在于:所述SPI串行 接口通信线路采用四线制,包括3〇(、]\«)31、]\〇30、呢3信号,分别表示时钟信号、主发送从接 收信号、主接收从发送信号、设备选择信号。
4. 根据权利要求1所述的基于单片机的串行通信控制系统,其特征在于:所述数据中断 信号采用下降沿触发,在处理模块生成应用数据后,中断信号线上的电平被拉低设定时长。
5. —种利用权利要求1所述系统的基于单片机的串行通信控制方法,其特征在于包括 下述步骤: (1) 初始化程序存储区的控制参数; (2) 等待上位机发送的串口指令,若没有收到串口指令则进入步骤(3),若收到串口指 令则进入步骤(6); ⑶判断串口等待是否超时,若超时则进入步骤⑷,若不超时则返回步骤⑵; ⑷将程序存储区的控制参数发送给处理模块;处理模块将外部输入的信号进行处理, 处理后生成应用数据并产生中断信号; (5)等待数据中断,如果检测到中断则把处理模块生成的应用数据存储到数据存储区; 没有检测到中断则继续等待数据中断; ⑹判断串口指令是否是有效指令,并根据有效指令执行相应函数。
6.根据权利要求5所述的基于单片机的串行通信控制方法,其特征在于:所述的串口指 令中,有效指令包括更改程序存储区的控制参数、返回程序存储区的控制参数、发送控制参 数给处理模块、正常运行;如收到的串口指令数据不在有效指令之列,则判断为无效指令; 所述函数包含串口接收函数、串口发送函数、控制参数下发函数、读取控制参数函数、写控 制参数函数、数据存储函数;串口接收函数通过外部中断来告知单片机检测到串口接收缓 冲区收到上位机发送的数据,并在判断满足接收条件完毕之后,产生接收完毕握手信号;串 口发送函数用来返回单片机发送给上位机的数据;参数下发函数是通过SPI接口将程序存 储区中的控制参数发送给处理模块;读取控制参数函数将访问程序存储区的用户区,将其 中表示控制参数的数据读取出来;写控制参数函数将表示控制参数的数据写入到程序存储 区的用户区;数据存储函数用于将来自处理模块的应用数据存储到数据存储区。
7.根据权利要求5所述的基于单片机的串行通信控制方法,其特征在于:所述有效指令 用一个单字节的无符号数表示。
8.根据权利要求7所述的基于单片机的串行通信控制方法,其特征在于:所述表示有效 指令的单字节无符号数取自串口接收数据的第一个字节。
CN201611174380.6A 2016-12-19 2016-12-19 一种基于单片机的串行通信控制系统及方法 Pending CN106776402A (zh)

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)

Citations (5)

* Cited by examiner, † Cited by third party
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 淮阴工学院 检测路灯光强的无线传感系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
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 淮阴工学院 检测路灯光强的无线传感系统

Similar Documents

Publication Publication Date Title
JP2781815B2 (ja) 専用コントローラ無しで動作する集積化modem
CN202870808U (zh) 一种spi串口模块的fpga实现装置
CN101420328B (zh) 远程升级现场可编程门阵列的系统、接口卡及方法
CN104021102B (zh) 基于状态机和片内总线的cpci串口板及其工作方法
US7353300B2 (en) Apparatus to improve the firmware efficiency for a multiframe serial interface
US20030064703A1 (en) Portable communication terminal, communication method of the portable communication terminal, program, and recording medium having the program recorded thereon
CN101369948B (zh) 一种实现低功耗的通信系统
CN107562672A (zh) 一种提高矢量网络分析仪数据传输速率的系统及方法
CN102546033A (zh) 采用脉冲调制结合串口方式实现的多机通信装置
CN101393542B (zh) 通过gpio端口支持usb接口的嵌入式设备及方法
CN105718396A (zh) 一种大数据主设备传输的i2c总线装置及其通讯方法
CN107992439B (zh) 一种可扩展的数据交互方法及系统
CN106776402A (zh) 一种基于单片机的串行通信控制系统及方法
CN103810127A (zh) Usb低速设备数据传输控制方法及控制器
CN102866979A (zh) 一种同步串行接口信号传感器数据采集装置
CN101907683A (zh) 数字基带芯片中i2c模块的自动测试电路结构及其方法
CN200944235Y (zh) 数字信号处理器同步串口与异步串行设备的接口装置
TWI235921B (en) System and method for effectively performing physical direct memory access operations
CN103631649A (zh) 中断处理方法、装置及中断控制器
CN204706031U (zh) 串行外设接口spi总线电路以及电子设备
CN212208283U (zh) 一种单片机间的双向握手通讯电路
CN212647461U (zh) 一种基于pci总线的同步或异步串行通讯控制电路
CN208190652U (zh) 一种全双工通用同步异步串行收发器的主板
CN105389155A (zh) 一种利用spi接口实现tdm音频数据接收的方法及系统
CN110825684A (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