CN114168500A - 一种无系统的单片机多接口扩展方法 - Google Patents
一种无系统的单片机多接口扩展方法 Download PDFInfo
- Publication number
- CN114168500A CN114168500A CN202111451546.5A CN202111451546A CN114168500A CN 114168500 A CN114168500 A CN 114168500A CN 202111451546 A CN202111451546 A CN 202111451546A CN 114168500 A CN114168500 A CN 114168500A
- Authority
- CN
- China
- Prior art keywords
- serial port
- main control
- interface configuration
- control chip
- interface
- 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
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000006870 function Effects 0.000 claims abstract description 29
- 238000007781 pre-processing Methods 0.000 claims abstract description 7
- 238000004806 packaging method and process Methods 0.000 claims abstract description 4
- 238000013480 data collection Methods 0.000 claims description 5
- 238000005070 sampling Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
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/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- 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/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种无系统的单片机多接口扩展方法包括:对主控芯片串口进行预处理;通过上位机配置新增串口传感器的接口配置参数;将所述接口配置参数保存到FLASH闪存,并将所述接口配置参数封装成接口配置读写函数;配置串口DMA控制器,主控芯片从FLASH闪存中读取所述接口配置读写函数中的接口配置参数并创建接口配置参数数组,根据接口配置参数数组创建数据采集数组;主控芯片根据新增串口传感器数量通过轮询方式将新增串口传感器中的数据发送到数据采集数组指定位置。本发明通过上位机软件对主控芯片进行接口参数的配置,在不修改主控芯片程序的情况下,使得单片机主控芯片完成新增串口传感器接入工作。
Description
技术领域
本发明涉及数据信号采集和通信技术领域,更具体的说是涉及一种无系统的单片机多接口扩展方法。
背景技术
现有的单片机数据采集系统一般比较简单化,数据采集串口传感器种类和数量往往比较单一。如果需要扩展串口传感器或其他通信设备,就必须设计新的系统去兼容,这样就不能达到串口传感器的快速扩展,从而不能满足现场需要。
如图1所示,一种比较常见的单片机数据采集系统用到了7路串口、2路CAN口和1路网口,数据采集主控板通过串口1-5采集风速、风压、液位、幅度和重量串口传感器的数据,通过串口6连接的语音播报来提示系统运状态,系统的数据控制和输出是通过串口7连接的可触摸显示屏来完成。此单片机数据采集系统能够很好的完成对所需数据的采集以及对数据的输出控制和显示保存,但是该系统存在以下几个问题:
1)串口接口资源需要的过多,可选择的串口传感器芯片种类很少。
2)当增加不同波特率的串口传感器时,数据采集系统需要重新设计,导致兼容性很低。
3)当串口传感器增加时,需要重新编写单片机主控芯片中的程序代码,即对单片机主控芯片中的代码程序进行重新编写(增加或更改),导致数据采集系统添加串口传感器的调试周期变长,效率变低。
因此,如何克服上述缺陷,提供一种无系统的单片机多接口扩展方法是本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种无系统的单片机多接口扩展方法,通过上位机软件对主控芯片进行接口参数的配置,在不修改主控芯片程序的情况下,使得单片机主控芯片在不额外增加操作系统的情况下完成新增串口传感器接口的正常工作。
为了实现上述目的,本发明采用如下技术方案:
一种无系统的单片机多接口扩展方法,包括以下步骤:
(1)对主控芯片串口进行预处理;
(2)通过上位机配置新增串口传感器的接口配置参数;
(3)将所述接口配置参数保存到FLASH闪存,并将所述接口配置参数封装成接口配置读写函数;
(4)配置串口DMA,主控芯片从FLASH闪存中读取所述接口配置读写函数中的接口配置参数并创建接口配置参数数组,根据接口配置参数数组创建数据采集数组;
(5)主控芯片根据新增串口传感器数量通过轮询方式将新增串口传感器中的数据发送到数据采集数组指定位置。
优选的,步骤(1)对主控芯片串口进行预处理,具体包括:
a、将主控芯片串口的接入电平与新增串口传感器的接入电平转换成一致;
b、将主控芯片串口的引脚配置为串口收发引脚;
c、将主控芯片串口的波特率设置为固定值。
优选的,步骤(2)中所述接口配置参数包括新增串口传感器数量,每个新增串口传感器的站号、数据起始地址、数据占用字数及配置参数容量。
优选的,步骤(4)中配置串口DMA,包括配置串口DMA发送函数及串口DMA接收函数。
优选的,步骤(5)具体包括:
S51:读取其中一个新增串口传感器中的采集数据,组成MODBUS发送访问帧;
S52:定时20ms等待串口DMA发送函数是否完成中断;
S53:当串口DMA发送函数完成中断,则将MODBUS发送访问帧中的采集数据发送到数据采集数组指定位置。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种无系统的单片机多接口扩展方法,具有以下有益效果:新增串口传感器的接口的配置参数在上位机中完成,主控芯片通过调用上位机中的配置参数即可完成新增串口传感器的接入,而不需要对主控芯片中的程序代码进行更改,提高了单片机数据采集系统的兼容性,同时缩短了增加串口传感器的时间周期,更为高效便捷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明背景技术中提供的常见的单片机数据采集系统结构示意图;
图2为本发明实施例提供的方法步骤流程图;
图3为本发明实施例提供的单片机数据采集系统硬件结构示意图;
图4为本发明实施例提供的接口参数配置数组及数据采集数组创建组成示意图;
图5为本发明实施例提供的新增串口传感器数据采集函数循环中的第K次采样过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种无系统的单片机多接口扩展方法,如附图2所示,包括以下步骤:
(1)对主控芯片串口进行预处理;
(2)通过上位机配置新增串口传感器的接口配置参数,接口配置参数主要包括新增串口传感器数量,每个新增串口传感器的站号、数据起始地址、数据占用字数及配置参数容量。
(3)将所述接口配置参数保存到FLASH闪存,并将所述接口配置参数封装成接口配置读写函数。
(4)配置串口DMA控制器,主控芯片从FLASH闪存中读取所述接口配置读写函数中的接口配置参数并创建接口配置参数数组,根据接口配置参数数组创建数据采集数组;配置串口DMA控制器主要包括配置串口DMA发送函数及串口DMA接收函数。当需要扩展的串口传感器数量达到一定数量后,主控芯片处理数据的负担会加重,而DMA是直接进行数据传输存储的,不需要主控芯片去干预接收的数据,因此通过配置串口DMA来传输存储数据会大大提高系统的响应时间,提高传输效率。配置好串口MDA后即可根据新增串口传感器数量通过轮询方式将新增串口传感器中的数据发送到数据采集数组指定位置。
(5)主控芯片根据新增串口传感器数量通过轮询方式将新增串口传感器中的数据发送到数据采集数组指定位置。
步骤(5)具体包括:
S51:读取其中一个新增串口传感器中的采集数据,组成MODBUS发送访问帧;
S52:定时20ms等待串口DMA发送函数是否完成中断;
S53:当串口DMA发送函数完成中断,则将MODBUS发送访问帧中的采集数据发送到数据采集数组指定位置。
为了进一步优化上述技术方案,步骤(1)中对主控芯片串口进行预处理,具体包括:
a、将主控芯片串口的接入电平与新增串口传感器的接入电平转换成一致,串口传感器有多种串口接入方式,比如有的串口是TTL电平、有的串口是232电平、有的串口是485电平接口,这样就需要在主控芯片和串口串口传感器之间进行电平转换,将主控芯片串口的接入电平与新增串口传感器的接入电平转换成一致;
b、将主控芯片串口的引脚配置为串口收发引脚,主控芯片串口的引脚配置主要针对具有复用功能的引脚,将单片机复用功能的引脚设置串口收发引脚,用于增加新的串口传感器,引脚配置可以通过配置串口的输入输出寄存器实现;
c、将主控芯片串口的波特率设置为固定值,这样做的目的在于将新增串口传感器中的串口传输波特率设置为一致。
本发明实施例中所述方法的硬件结构如图3所示,在该单片机数据采集系统中新增的n个串口传感器通过从串口总线连接在一起,数据采集控制器主控芯片通过从串口总线从n个新增串口传感器中读取采集的数据。只需要通过上位机软件设置新增加的串口传感器的站号等接口配置参数数据就可以将新增串口传感器采集的数据传递到控制器主控芯片。
在实际操作中,FLASH闪存可以外接在单片机主控芯片上,目的在于单片机关电重启后,可以将FLASH闪存中保存的接口配置参数重新读出,防止系统掉电导致数据丢失。
单片机主控芯片获取FLASH闪存中的接口配置参数后,首先在单片机内存中创建接口配置参数数组,然后根据接口配置参数数组创建采样数据数组,接口配置参数数组主要由新增串口传感器数量,每个新增串口传感器的站号、数据起始地址、数据占用字数及配置参数容量等接口配置参数组成,可以描述为下面形式
图4列举了创建n个新增串口传感器接口配置参数数组,并根据接口配置参数数组创建数据采集数组的整体过程,从图4中可以看出接口配置参数数组是创建数据采集数组的依据,也就是根据接口配置参数数组来定义数据采集数组,接口配置参数数组决定数据采集数组的大小、采集数据存放在数据采样数组的位置等。
单片机主控芯片利用接口配置参数数组及采样数据数组,将新增串口传感器中的采集数据传入到单片机主控芯片,具体的可以创建一个串口传感器采集函数,传递给这个函数的参数就是上面组建的配置参数数组和采集数据数组的地址指针,串口传感器采集函数要获得是需要采集数据的新增串口传感器的个数。如果新增串口传感器的个数为n个,函数就要做n次循环,每次循环访问一个串口传感器数据。单片机做为主机,新增的串口传感器作为从机,根据新增串口传感器不同的站号,依次发送不同的访问帧,串口传感器传感器收到与自己的站号相同的访问帧就会发送应答帧,这样单片机主控芯片根据收到的帧,根据配置参数中的传感器采集数据地址和字个数,将新增串口传感器中的数据保存在采集数据数组指定位置。为了说明这一过程,在n个新增串口传感器数据采集函数循环中的第K次采样过程如图5所示,利用串口传感器采集函数将n个新增串口传感器中第K个新增串口传感器中的数据保存在采集数据数组指定位置。
基于同样的思想,也可实现单片机数据采集系统控制器主控芯片其他接口如CAN口、主串口或网口等,在不修改主控芯片程序的情况下实现其他传感器、触摸屏或网络服务器的扩展。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.一种无系统的单片机多接口扩展方法,其特征在于,所述方法包括以下步骤:
(1)对主控芯片串口进行预处理;
(2)通过上位机配置新增串口传感器的接口配置参数;
(3)将所述接口配置参数保存到FLASH闪存,并将所述接口配置参数封装成接口配置读写函数;
(4)配置串口DMA控制器,主控芯片从FLASH闪存中读取所述接口配置读写函数中的接口配置参数并创建接口配置参数数组,根据接口配置参数数组创建数据采集数组;
(5)主控芯片根据新增串口传感器数量通过轮询方式将新增串口传感器中的数据发送到数据采集数组指定位置。
2.根据权利要求1所述的无系统的单片机多接口扩展方法,其特征在于,步骤(1)中对主控芯片串口进行预处理,具体包括:
a、将主控芯片串口的接入电平与新增串口传感器的接入电平转换成一致;
b、将主控芯片串口的引脚配置为串口收发引脚;
c、将主控芯片串口的波特率设置为固定值。
3.根据权利要求2所述的无系统的单片机多接口扩展方法,其特征在于,步骤(2)中所述接口配置参数包括新增串口传感器数量,每个新增串口传感器的站号、数据起始地址、数据占用字数及配置参数容量。
4.根据权利要求3所述的无系统的单片机多接口扩展方法,其特征在于,步骤(4)中配置串口DMA控制器,包括配置串口DMA发送函数及串口DMA接收函数。
5.根据权利要求4所述的无系统的单片机多接口扩展方法,其特征在于,步骤(5)具体包括:
S51:读取其中一个新增串口传感器中的采集数据,组成MODBUS发送访问帧;
S52:定时20ms等待串口DMA发送函数是否完成中断;
S53:当串口DMA发送函数完成中断,则将MODBUS发送访问帧中的采集数据发送到数据采集数组指定位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111451546.5A CN114168500A (zh) | 2021-12-01 | 2021-12-01 | 一种无系统的单片机多接口扩展方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111451546.5A CN114168500A (zh) | 2021-12-01 | 2021-12-01 | 一种无系统的单片机多接口扩展方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114168500A true CN114168500A (zh) | 2022-03-11 |
Family
ID=80482067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111451546.5A Pending CN114168500A (zh) | 2021-12-01 | 2021-12-01 | 一种无系统的单片机多接口扩展方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168500A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217202A1 (en) * | 2002-05-15 | 2003-11-20 | M-Systems Flash Disk Pioneers Ltd. | Method for improving performance of a flash-based storage system using specialized flash controllers |
US8341311B1 (en) * | 2008-11-18 | 2012-12-25 | Entorian Technologies, Inc | System and method for reduced latency data transfers from flash memory to host by utilizing concurrent transfers into RAM buffer memory and FIFO host interface |
CN204129729U (zh) * | 2014-06-05 | 2015-01-28 | 苏州润林文化传媒有限公司 | 一种基于DMA传输的Flash存储控制系统 |
CN104539631A (zh) * | 2015-01-20 | 2015-04-22 | 成都市酷岳科技有限公司 | 一种信息交换及高速传输的实现方法及其模块 |
CN105785958A (zh) * | 2016-05-08 | 2016-07-20 | 杭州集控软件有限公司 | 基于智慧工厂的多功能数据采集器、采集系统及方法 |
CN105955764A (zh) * | 2016-04-22 | 2016-09-21 | 佛山市南海区欧谱曼迪科技有限责任公司 | 一种stm32单片机iap串口程序烧录的改进方法 |
CN106569970A (zh) * | 2015-10-08 | 2017-04-19 | 中兴通讯股份有限公司 | Smi接口器件的调试装置及方法 |
CN106776402A (zh) * | 2016-12-19 | 2017-05-31 | 中国电子科技集团公司第二十研究所 | 一种基于单片机的串行通信控制系统及方法 |
CN107291647A (zh) * | 2017-05-19 | 2017-10-24 | 中国科学院长春光学精密机械与物理研究所 | Dsp读取扩展串口中接收通道数据的方法 |
CN109240719A (zh) * | 2017-07-03 | 2019-01-18 | 湖南大学 | 一种基于stm32的程序下载器 |
CN209118101U (zh) * | 2018-11-09 | 2019-07-16 | 吾诺瑟斯科技(天津)有限公司 | 多接口异构物联网接入设备 |
-
2021
- 2021-12-01 CN CN202111451546.5A patent/CN114168500A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217202A1 (en) * | 2002-05-15 | 2003-11-20 | M-Systems Flash Disk Pioneers Ltd. | Method for improving performance of a flash-based storage system using specialized flash controllers |
US8341311B1 (en) * | 2008-11-18 | 2012-12-25 | Entorian Technologies, Inc | System and method for reduced latency data transfers from flash memory to host by utilizing concurrent transfers into RAM buffer memory and FIFO host interface |
CN204129729U (zh) * | 2014-06-05 | 2015-01-28 | 苏州润林文化传媒有限公司 | 一种基于DMA传输的Flash存储控制系统 |
CN104539631A (zh) * | 2015-01-20 | 2015-04-22 | 成都市酷岳科技有限公司 | 一种信息交换及高速传输的实现方法及其模块 |
CN106569970A (zh) * | 2015-10-08 | 2017-04-19 | 中兴通讯股份有限公司 | Smi接口器件的调试装置及方法 |
CN105955764A (zh) * | 2016-04-22 | 2016-09-21 | 佛山市南海区欧谱曼迪科技有限责任公司 | 一种stm32单片机iap串口程序烧录的改进方法 |
CN105785958A (zh) * | 2016-05-08 | 2016-07-20 | 杭州集控软件有限公司 | 基于智慧工厂的多功能数据采集器、采集系统及方法 |
CN106776402A (zh) * | 2016-12-19 | 2017-05-31 | 中国电子科技集团公司第二十研究所 | 一种基于单片机的串行通信控制系统及方法 |
CN107291647A (zh) * | 2017-05-19 | 2017-10-24 | 中国科学院长春光学精密机械与物理研究所 | Dsp读取扩展串口中接收通道数据的方法 |
CN109240719A (zh) * | 2017-07-03 | 2019-01-18 | 湖南大学 | 一种基于stm32的程序下载器 |
CN209118101U (zh) * | 2018-11-09 | 2019-07-16 | 吾诺瑟斯科技(天津)有限公司 | 多接口异构物联网接入设备 |
Non-Patent Citations (2)
Title |
---|
栾婷;王效亮;刘志蕾;: "基于串口的单片机参数在线下载方法", 电子技术与软件工程, no. 05, pages 250 - 251 * |
颜坤;马瑞平;张明廉;: "多串口船舶导航数据转换器的低成本实现", 微计算机信息, no. 23, pages 106 - 108 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102650975B (zh) | 用于多硬件平台飞腾服务器的i2c总线的实现方法 | |
US20030188054A1 (en) | Data transfer apparatus and method | |
CN109858621B (zh) | 一种卷积神经网络加速器的调试装置、方法及存储介质 | |
CN101592934A (zh) | 可编程逻辑控制器与扩展模块的通信方法 | |
JP3647955B2 (ja) | 操作ボード、リモートi/o通信制御方法 | |
CN107562672A (zh) | 一种提高矢量网络分析仪数据传输速率的系统及方法 | |
CN112003954B (zh) | 数据通信方法、数据通信系统及计算机可读存储介质 | |
CN116450552B (zh) | 基于i2c总线异步批量读写寄存器的方法及系统 | |
CN111510363A (zh) | 基于modbus协议的从站转换装置及其控制方法 | |
CN103957198A (zh) | 一种传感数据接收转换方法及系统 | |
CN107992439A (zh) | 一种可扩展的数据交互方法及系统 | |
CN114168500A (zh) | 一种无系统的单片机多接口扩展方法 | |
CN116566762B (zh) | 一种基于Modbus-RTU协议的级联设备及其使用方法 | |
CN109388606A (zh) | 一种芯片内可重构的串行总线控制器 | |
CN104656604B (zh) | 一种利用modbus通信协议实现人机交互的电网安全稳定控制装置及其方法 | |
CN103379006A (zh) | 数据卡自适应方法及装置 | |
CN110750478A (zh) | 一种多串口通信方法及系统 | |
CN216352286U (zh) | 一种i2c总线的检测装置 | |
CN112764673B (zh) | 高光谱线阵数据存储速率优化方法、装置和存储介质 | |
CN114759942A (zh) | 一种芯片及数据转换方法 | |
CN106776402A (zh) | 一种基于单片机的串行通信控制系统及方法 | |
JPH09259068A (ja) | 拡張入出力インターフェイス | |
JPH0936859A (ja) | 監視情報中継方法および装置 | |
CN110825684A (zh) | 串行端口接口整合输出系统 | |
JP3870890B2 (ja) | 操作ボード、リモートi/o通信制御方法 |
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 |