一种基于单片机的串行通信控制系统及方法与流程

文档序号:12464359阅读:497来源:国知局
一种基于单片机的串行通信控制系统及方法与流程

本发明涉及通信控制领域,尤其涉及一种串行通信控制系统及方法,用于单片机与计算机、处理模块的通信。



背景技术:

随着电子技术的发展和电子系统需求的增长,各种大小型通信控制系统层出不穷,通常其数据通信控制多采用专用控制器来实现。采用专用控制器虽然能够完成通信控制的功能,但由于其是专门为某一特定应用场景设计,就势必导致其具备应用局限性,更换了应用场景原有控制器就不兼容了。同时采用专用控制器就必须为其预留电路接口,增加了设计和结构的复杂度。而往往专用控制器价格昂贵,不利于控制开发成本,在简单的系统应用中使用也没有太大的意义。



技术实现要素:

为了克服现有技术的不足,本发明提供一种基于单片机的串行通信控制系统。

本发明解决其技术问题所采用的技术方案是:一种基于单片机的串行通信控制系统,包括上位机、单片机和处理模块;所述单片机内部配置程序存储区和数据存储区,外部配置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时,将不再响应串口发送的指令,切换到正常运行模式,紧接着将控制参数下发给处理模块。最后回到所述方法中下发控制参数执行完毕之后的步骤。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1