CN102750240B - 一种基于嵌入式mcu的信道扩展方法 - Google Patents
一种基于嵌入式mcu的信道扩展方法 Download PDFInfo
- Publication number
- CN102750240B CN102750240B CN201210220294.XA CN201210220294A CN102750240B CN 102750240 B CN102750240 B CN 102750240B CN 201210220294 A CN201210220294 A CN 201210220294A CN 102750240 B CN102750240 B CN 102750240B
- Authority
- CN
- China
- Prior art keywords
- mcu
- data
- frame
- channel
- expansion
- 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.)
- Active
Links
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种基于嵌入式MCU的信道扩展方法,设置有主控MCU及通过SPI与其连接的扩展MCU,通过软件在扩展MCU上设置模拟UART端口和实现主控MCU与扩展MCU间的通讯机制,主控MCU和扩展MCU都为与每个UART端口建立对应的UART端口标志位及数据缓冲区,包括数据发送缓冲区和数据接收缓冲区。并使用优先级信道分配和缓冲区数据量信道分配结合时间片划分的SPI信道分配方式,有效保障了通信的可靠性。同时,本发明利用很少的硬件投入,通过软件模拟,实现灵活扩展UART接口,扩展了信道,大大降低了研发成本以及产品的成本,而且通信十分稳定可靠。
Description
技术领域
本发明涉及一种基于嵌入式MCU的信道扩展方法。
背景技术
随着现在电子产品的功能越来越强大,产品内外围设备越来越多,同时板内MCU与外围设备的通信数据量越来越大,实时度要求也越来越高。而常见通信方式中,由于UART的简单易用,被各功能模块广泛使用,例如蓝牙模块、GPS模块、DVD机芯、数字电视模块、开发调试接口等等,、往往会导致主控MCU的UART资源数量告急,导致同时支持的外围模块有限,从而影响整机功能的丰富,降低产品竞争力。
目前市面上有少数的集成IC方案,可以做信道扩展,但是由于市场用量小,货源不稳定,价格很高,同时由于扩展有限,并且通信处理能力固化,设计灵活度很低。另外,几乎没有符合汽车级应用的集成解决方案。
发明内容
为了解决现有MCU的UART端口不足的问题,本发明提供一种基于嵌入式MCU的信道扩展技术的设计方案。
一种基于嵌入式MCU的信道扩展方法,设置有主控MCU及与其连接的扩展MCU,通过软件在扩展MCU上设置模拟UART端口和实现主控MCU与扩展MCU间的通讯机制,并通过物理UART端口和模拟UART端口与外部设备连接,主控MCU通过SPI和扩展MCU连接,主控MCU和扩展MCU都为与每个UART端口建立对应的数据缓冲区,包括数据发送缓冲区和数据接收缓冲区,并定义对应的UART端口标志位。
具体的,所述模拟UART通过高速IO端口模拟UART时序实现。
更具体的,其实现步骤为:
(1)扩展MCU若收到来自外部设备的一完整数据帧后,将数据帧存入对应UART端口的数据发送缓冲区;
(2)扩展MCU检测到某个数据发送缓冲区有来自外部设备的待发送的数据帧时,将对应的UART端口标志位和帧长度的信息写入数据帧的帧头,通过SPI将数据发送给主控MCU,主控MCU通过对应的数据缓接收冲区接收该数据帧;
(3)主控MCU将要发送给连接到某一UART端口的外部设备的数据存到数据发送缓冲区,当检测到数据发送缓冲区有完整的数据帧时,则将对应UART标志位及帧长度信息写入数据帧的帧头,通过SPI发送到扩展MCU,扩展MCU通过对应的数据接收缓冲区接收该数据帧;
(4)当扩展MCU检测到数据接收缓冲区有来自主控MCU的数据帧时,将数据帧的端口标志位和帧长度信息删除并将数据帧存入对应的数据发送缓冲区,通过对应的UART将数据帧发送给外部设备。
优选的,所述数据发送缓冲区以及数据接受缓冲区的大小可自定义。
优选的,每个UART端口的数据缓冲区均设置有用于记录该端口优先级的优先级信道占用标志以及表示该端口数据量的缓冲区数据量信道占用标志,主控MCU通过上述两个信道占用标志采用优先级信道分配和缓冲区数据量信道分配两种方式分配通信的每个端口的对SPI信道的使用。
进一步的,主控MCU通过时间片分配方式在优先级信道分配和缓冲区数据量信道分配两种信道分配方式之间切换。
更进一步的,主控MCU与扩展MCU通讯的数据帧设置有用于校验数据帧的校验码;主控MCU与扩展MCU中接收方收到发送方发送的数据帧后根据校验码进行数据校验,若通过数据校验则校验码反馈给发送方,若校验异常则发送错误码给发送方,若发送方发完一帧数据后在设定的时延内没有收到接收方的应答或者收到错误码,则重发该帧数据。
优选的,数据帧长度为小于或等于30字节。
综上所述,本发明具有以下有益效果:(1)利用很少的硬件投入实现信道扩展,大大降低了研发成本以及产品的成本。(2)通过软件模拟,实现灵活扩展UART接口;(3)通信十分稳定可靠。
附图说明
图1为本发明的系统结构示意图;
图2为本发明主控MCU和扩展MCU间通信用数据帧的结构示意图;
图3 为信道分配方式示意图。
具体实施方式
为了让本领域的技术人员能够更好地了解本发明的技术方案,下面结合附图对本发明作进一步的阐述。
如图1所示,一种基于嵌入式MCU的信道扩展方法,设置有主控MCU及与其连接的扩展MCU,通过软件在扩展MCU上设置模拟UART端口和实现主控MCU与扩展MCU间的通讯机制,并通过物理UART端口和模拟UART端口与外部设备连接,主控MCU通过SPI和扩展MCU连接。所述模拟UART通过高速IO端口模拟UART时序实现。本实施例中扩展MCU带有三个物理UART端口和三个模拟的UART端口。
由于SPI与UART数据传输速度不一致,并且6个UART端口的都要通过唯一的SPI接口与主控MCU数据交互,因此,本发明主控MCU和扩展MCU都为与每个UART端口建立对应的数据缓冲区,包括数据发送缓冲区和数据接收缓冲区,并定义对应的UART端口标志位,由此解决由于数据阻塞而引起的数据丢失的问题。同时,为了满足不同的工作状态,各个数据缓冲区的大小均可自定义。
在进行通信时,其通信的实现步骤为:
(1)扩展MCU若收到来自外部设备的一完整数据帧后,将数据帧存入对应UART端口的数据发送缓冲区(本实施例的数据缓冲区均使用FIFO机制);(2)扩展MCU检测到某个数据发送缓冲区有来自外部设备的待发送的数据帧时,将对应的UART端口标志位和帧长度的信息写入数据帧的帧头(数据帧的结构如图2所示),通过SPI将数据发送给主控MCU,主控MCU通过对应的数据缓接收冲区接收该数据帧;(3)主控MCU将要发送给连接到某一UART端口的外部设备的数据存到数据发送缓冲区,当检测到数据发送缓冲区有完整的数据帧时,则将对应UART标志位及帧长度信息写入数据帧的帧头,通过SPI发送到扩展MCU,扩展MCU通过对应的数据接收缓冲区接收该数据帧;(4)当扩展MCU检测到数据接收缓冲区有来自主控MCU的数据帧时,将数据帧的端口标志位和帧长度信息删除并将数据帧存入对应的数据发送缓冲区,通过对应的UART将数据帧发送给外部设备。
由于多个UART端口共用一个SPI信道,一般惯用的对比优先级来决定哪个UART端口占用SPI信道的方法也无法很好地解决通信堵塞等问题,由此,本发明的技术方案中,每个UART端口的数据缓冲区均设置有用于记录该端口优先级的优先级信道占用标志以及表示该端口缓冲区数据量的缓冲区数据量信道占用标志,主控MCU通过上述两个信道占用标志采用优先级信道分配和缓冲区数据量信道分配两种方式分配通信的每个端口的对SPI信道的使用。
优先级信道分配和缓冲区数据量信道分配两种信道分配方式之间切换由主控MCU通过时间片分配方式来确定,如图3所示,在一个时间长度为10的周期中的,前8个时间长度使用优先级信道分配方式,后两个时间长度使用缓冲区数据量信道分配方式。两个不同的信道分配方式,能够有效地避免优先级较低的UART端口的缓冲区溢出的问题。
为了进一步确保数据传输的可靠性,主控MCU与扩展MCU通讯的数据帧设置有用于校验数据帧的校验码,本发明采用BCC校验码,如图2所示;主控MCU与扩展MCU中接收方收到发送方发送的数据帧后根据校验码进行数据校验,若通过数据校验则校验码反馈给发送方,若校验异常则发送错误码给发送方,若发送方发完一帧数据后在设定的时延内(如100ms)没有收到接收方的应答或者收到错误码,不能进行下一帧数据的发送,必须重发该帧数据。若重发3次后接收方仍无应答或者返回错误码,则取消数据发送并发出错误警报。
为了防止超长帧的出现,保证通信质量,限制数据帧长度不能大于30字节。
本实施例只是本发明的较优实施方式,需要说明的是,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (6)
1.一种基于嵌入式MCU的信道扩展方法,设置有主控MCU及与其连接的扩展MCU,通过软件在扩展MCU上设置模拟UART端口和实现主控MCU与扩展MCU间的通讯机制,并通过物理UART端口和模拟UART端口与外部设备连接,其特征在于,主控MCU通过SPI和扩展MCU连接,主控MCU和扩展MCU都为每个UART端口建立对应的数据缓冲区,包括数据发送缓冲区和数据接收缓冲区,并定义对应的UART端口标志位;每个UART端口的数据缓冲区均设置有用于记录该端口优先级的优先级信道占用标志以及表示该端口数据量的缓冲区数据量信道占用标志,主控MCU通过上述两个信道占用标志采用优先级信道分配和缓冲区数据量信道分配两种方式分配通信的每个端口的对SPI信道的使用;主控MCU通过时间片分配方式在优先级信道分配和缓冲区数据量信道分配两种信道分配方式之间切换。
2.根据权利要求1所述的基于嵌入式MCU的信道扩展方法,其特征在于,所述模拟UART通过高速IO端口模拟UART时序实现。
3.根据权利要求1所述的基于嵌入式MCU的信道扩展方法,其特征在于,其实现步骤为:
(1)扩展MCU若收到来自外部设备的一完整数据帧后,将数据帧存入对应UART端口的数据发送缓冲区;
(2)扩展MCU检测到某个数据发送缓冲区有来自外部设备的待发送的数据帧时,将对应的UART端口标志位和帧长度的信息写入数据帧的帧头,通过SPI将数据发送给主控MCU,主控MCU通过对应的数据缓接收冲区接收该数据帧;
(3)主控MCU将要发送给连接到某一UART端口的外部设备的数据存到数据发送缓冲区,当检测到数据发送缓冲区有完整的数据帧时,则将对应UART标志位及帧长度信息写入数据帧的帧头,通过SPI发送到扩展MCU,扩展MCU通过对应的数据接收缓冲区接收该数据帧;
(4)当扩展MCU检测到数据接收缓冲区有来自主控MCU的数据帧时,将数据帧的端口标志位和帧长度信息删除并将数据帧存入对应的数据发送缓冲区,通过对应的UART将数据帧发送给外部设备。
4.根据权利要求3所述的基于嵌入式MCU的信道扩展方法,其特征在于,所述数据发送缓冲区以及数据接受缓冲区的大小可自定义。
5.根据权利要求3所述的基于嵌入式MCU的信道扩展方法,其特征在于,主控MCU与扩展MCU通讯的数据帧设置有用于校验数据帧的校验码;
主控MCU与扩展MCU中接收方收到发送方发送的数据帧后根据校验码进行数据校验,若通过数据校验则校验码反馈给发送方,若校验异常则发送错误码给发送方,若发送方发完一帧数据后在设定的时延内没有收到接收方的应答或者收到错误码,则重发该帧数据。
6.根据权利要求1、3或5任一项所述的基于嵌入式MCU的信道扩展方法,其特征在于,数据帧长度为小于或等于30字节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210220294.XA CN102750240B (zh) | 2012-06-29 | 2012-06-29 | 一种基于嵌入式mcu的信道扩展方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210220294.XA CN102750240B (zh) | 2012-06-29 | 2012-06-29 | 一种基于嵌入式mcu的信道扩展方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102750240A CN102750240A (zh) | 2012-10-24 |
CN102750240B true CN102750240B (zh) | 2015-05-27 |
Family
ID=47030442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210220294.XA Active CN102750240B (zh) | 2012-06-29 | 2012-06-29 | 一种基于嵌入式mcu的信道扩展方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102750240B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345455B (zh) * | 2013-06-28 | 2016-03-30 | 深圳市科曼医疗设备有限公司 | 监护仪及其多mcu内存数据交换装置 |
CN103546250A (zh) * | 2013-09-18 | 2014-01-29 | 中标软件有限公司 | 一种用于车载终端的通信方法及系统 |
CN106201929A (zh) * | 2016-07-22 | 2016-12-07 | 恒宝股份有限公司 | 一种usb接口复用电路及使用方法 |
CN106143364B (zh) * | 2016-07-22 | 2019-06-11 | 北京航空航天大学 | 一种电动汽车分布式控制器信息安全方法及系统 |
CN109828938B (zh) * | 2018-12-13 | 2021-09-03 | 山东亚华电子股份有限公司 | 一种基于芯片的通信方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2645348Y (zh) * | 2003-05-29 | 2004-09-29 | 成都视普科技有限公司 | 多路通用异步收发器 |
CN1735257A (zh) * | 2004-08-11 | 2006-02-15 | 华为技术有限公司 | 一种在通信系统中分配资源的方法 |
CN101083688A (zh) * | 2007-06-28 | 2007-12-05 | 中兴通讯股份有限公司 | 通过dsl实现对话机远程控制的装置及方法 |
CN101267425A (zh) * | 2007-03-16 | 2008-09-17 | 上海贝电实业股份有限公司 | 用于动力环境分布式监控系统中的板间接口通讯协议 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020091870A (ko) * | 2001-06-01 | 2002-12-11 | 엘지이노텍 주식회사 | 다중 채널 회로 |
-
2012
- 2012-06-29 CN CN201210220294.XA patent/CN102750240B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2645348Y (zh) * | 2003-05-29 | 2004-09-29 | 成都视普科技有限公司 | 多路通用异步收发器 |
CN1735257A (zh) * | 2004-08-11 | 2006-02-15 | 华为技术有限公司 | 一种在通信系统中分配资源的方法 |
CN101267425A (zh) * | 2007-03-16 | 2008-09-17 | 上海贝电实业股份有限公司 | 用于动力环境分布式监控系统中的板间接口通讯协议 |
CN101083688A (zh) * | 2007-06-28 | 2007-12-05 | 中兴通讯股份有限公司 | 通过dsl实现对话机远程控制的装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102750240A (zh) | 2012-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102750240B (zh) | 一种基于嵌入式mcu的信道扩展方法 | |
CN101937253B (zh) | 用于时钟同步的方法、装置和系统 | |
CN104620564B (zh) | 用于经由利用数据隧道的接口的多协议数据元素的传输的装置和方法 | |
CN100473058C (zh) | 用于高数据速率信号传送的通信协议和接口的产生和实现 | |
CN103220282B (zh) | 生成并实施一用于更高数据率的讯号协议和接口 | |
CN102629240B (zh) | 一种串口通信方法与装置 | |
TW200532457A (en) | Lane to lane deskewing via non-data symbol processing for a serial point to point link | |
CN104679702A (zh) | 多路高速串行接口控制器 | |
CN103823785B (zh) | 一种基于dsp和cpld开发的多路arinc429数据收发电路结构 | |
CN103164314A (zh) | 基于异步物理层接口的PCIe接口芯片硬件验证方法 | |
CN104541255B (zh) | 用于封装上的输入/输出架构的非阻塞功率管理 | |
CN102073611A (zh) | 一种i2c总线控制系统及方法 | |
CN101902238A (zh) | Usb无线扩展系统 | |
CN101609412A (zh) | 车载信息娱乐系统模拟装置 | |
CN106649184B (zh) | 适用于星载电子设备的异步通信串口指令快速应答方法 | |
CN102170401B (zh) | 一种数据的处理方法和设备 | |
CN104424141A (zh) | 用于io和入站av的拓扑和带宽管理 | |
CN201348780Y (zh) | 一种接口扩展装置及移动终端 | |
CN108462653A (zh) | 基于tte的协议控制帧快速发送方法 | |
CN115827535A (zh) | 一种单线同步双向通讯的控制方法、装置和存储介质 | |
CN108111380A (zh) | 基于a5平台的n路can通信装置、实现方法及充电设备 | |
CN204695304U (zh) | 一种1553b总线pc104接口板 | |
CN101150681A (zh) | 一种广播级数字视音频采集与播出pci扩展卡 | |
CN102880576B (zh) | 基于stm32f103ve芯片模拟多组uart接口的方法 | |
CN110768775A (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 | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: 516006 Guangdong province Huizhou Zhongkai hi tech Industrial Development Zone Pearl River Road No. 1 Patentee after: HUIZHOU DESAY SV AUTOMOTIVE CO., LTD. Address before: 516006 Guangdong province Huizhou Zhongkai hi tech Industrial Development Zone Pearl River Road No. 1 Patentee before: Huizhou Desay SV Auto. Electronics Co., Ltd. |