本发明专利技术公开了一种基于嵌入式MCU的信道扩展方法,设置有主控MCU及通过SPI与其连接的扩展MCU,通过软件在扩展MCU上设置模拟UART端口和实现主控MCU与扩展MCU间的通讯机制,主控MCU和扩展MCU都为与每个UART端口建立对应的UART端口标志位及数据缓冲区,包括数据发送缓冲区和数据接收缓冲区。并使用优先级信道分配和缓冲区数据量信道分配结合时间片划分的SPI信道分配方式,有效保障了通信的可靠性。同时,本发明专利技术利用很少的硬件投入,通过软件模拟,实现灵活扩展UART接口,扩展了信道,大大降低了研发成本以及产品的成本,而且通信十分稳定可靠。
【技术实现步骤摘要】
本专利技术涉及一种基于嵌入式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字节。综上所述,本专利技术具有以下有益效果(I)利用很少的硬件投入实现信道扩展,大大降低了研发成本以及产品的成本。(2)通过软件模拟,实现灵活扩展UART接口 ;(3)通信十分稳定可靠。附图说明图I为本专利技术的系统结构示意 图2为本专利技术主控MCU和扩展MCU间通信用数据帧的结构示意图; 图3为信道分配方式示意图。具体实施例方式为了让本领域的技术人员能够更好地了解本专利技术的技术方案,下面结合附图对本专利技术作进一步的阐述。如图I所示,一种基于嵌入式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端口标志位,由此解决由于数据阻塞而引起的数据丢失的问题。同时,为了满足不同的工作状态,各个数据缓冲区的大小均可自定义。在进行通信时,其通信的实现步骤为 (I)扩展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次后接收方仍无应答或者返回错误码,则取消数据发送并发出错误警报。为了防止超长帧的出现,保证通信质量,限制数据帧长度不能本文档来自技高网...
【技术保护点】
一种基于嵌入式MCU的信道扩展方法,设置有主控MCU及与其连接的扩展MCU,通过软件在扩展MCU上设置模拟UART端口和实现主控MCU与扩展MCU间的通讯机制,并通过物理UART端口和模拟UART端口与外部设备连接,其特征在于,主控MCU通过SPI和扩展MCU连接,主控MCU和扩展MCU都为每个UART端口建立对应的数据缓冲区,包括数据发送缓冲区和数据接收缓冲区,并定义对应的UART端口标志位。
【技术特征摘要】
【专利技术属性】
技术研发人员:张皓,麦志伟,肖观送,
申请(专利权)人:惠州市德赛西威汽车电子有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。