一种嵌入式微处理器的串口扩展装置制造方法

文档序号:6548678阅读:212来源:国知局
一种嵌入式微处理器的串口扩展装置制造方法
【专利摘要】本发明公开了一种嵌入式微处理器的串口扩展装置,包括微处理器和可编程逻辑器件;微处理器包括M个串口和N个控制端口;可编程逻辑器件包括K个通用输入输出端口;其中,K>M>0,N>0;微处理器用于通过N个控制端口设置所述可编程逻辑器件的端口通信模式;可编程逻辑器件用于对器件内部的可编程逻辑电路进行编程,控制可编程逻辑器件上的各个通用输入输出端口的通信互连关系;可编程逻辑器件的各个通用输入输出端口用于连接一种或多种外围设备,实现外围设备与微处理器之间的信号传输和/或实现外围设备之间的信号传输。本发明提供的嵌入式微处理器的串口扩展装置,端口数量扩展方便简单,切换灵活,成本低效率高,可移植性强。
【专利说明】—种嵌入式微处理器的串口扩展装置
【技术领域】
[0001]本发明涉及嵌入式系统【技术领域】,尤其涉及一种嵌入式微处理器的串口扩展装置。
【背景技术】
[0002]通用串行异步接收/ 发送接 口(Universal Asynchronous Receiver/Transmitter,简称UART),也简称串口。串口是一种用于异步通信的通用串行数据总线,该总线双向通信,可以实现全双工传输和接收。串口是嵌入式系统设计中最常用最简单方便的接口,通常用来与PC (Personal Computer,个人计算机)或者其它外网设备通信。
[0003]现有的嵌入式微处理器通常具有1-6个串口,数量非常有限;而嵌入式微处理器作为嵌入式系统的核心,需要与微处理器通信的外围设备通常有很多种,甚至远远超过微处理器本身具有的串口数量。例如:在GNSS (Global Navigation Satellite System,全球导航卫星系统)接收机中,其内置的微处理器具有6个串口,而与微处理器通信的外围设备包括 GPS (Global Positioning System,全球定位系统)主板、GPRS (General Packet RadioService,通用分组无线服务技术)模块、蓝牙通信模块、电台通信模块、外部PC机等,其中,GPS主板需要占用3个串口,GPRS模块需要占用I个串口、蓝牙通信模块需要占用I个串口、电台通信模块需要占用I个串口,另外还需要2个串口与PC机或者其它外部设备通信。因此,所有与微处理器通信的外围设备总共需要8个串口,而微处理器自身只有6个串口,这就出现微处理器串口数量不足的问题,因此需要对微处理器的串口数量进行扩展。
[0004]解决上述问题的常用技术手段是,利用专用的串口扩展芯片以增加串口数量;或者,通过数字电路或模拟开关对微处理器的串口进行时分复用,使得多个外围设备可以分时复用同一个微处理器串口。其中,采用专用的串口扩展芯片扩展出来的串口允许外围设备同时工作,而没有分时复用的问题;但是存在成本高、驱动程序复杂等缺陷。在运行操作系统的嵌入式设计中使用专用串口扩展芯片来扩展串口时还需要开发对应的芯片驱动程序,增加了开发的难度与复杂性;并且由于驱动程序与操作系统架构自身的问题还可能会出现数据丢失。
[0005]此外,外部设备之间在某些情况下也需要进行相互通信而不经过微处理器的转接处理。例如在上述的GNSS接收机中,在某种工作模式下,GPS主板需要与GPRS模块、蓝牙通信模块、电台通信模块、PC机直接通信,实际上并不需要经过微处理器的参与,但现有技术中的各个外围设备通过微处理器的串口转接处理再进行数据传输,一方面数据传输效率较低,另一方面不必要地占用了微处理器的资源并降低了微处理器的整体性能,因此这不仅仅是微处理器串口数量不足的问题,还存在如何解决微处理器的外设之间的切换互连的问题。
[0006]现有技术中采用专用的串口扩展芯片不能解决外设之间直接通信的问题,仍然需要经过微处理器进行处理或者转发,因而增加了微处理器的工作负担。而采用数字电路或者模拟开关进行串口切换外设的解决方案将多个外设分时复用同一个微处理器串口,虽然可以解决外设之间直接通信的问题,但是缺点也是显而易见的,即:多个外设不能同时与微处理器进行通信。这种方案在特定的应用场合中也不失为一种简单有效的解决方法,但是由于电路之间的连接确定后就很难再改变,因此该方案灵活性与可扩展性都比较差。

【发明内容】

[0007]本发明所要解决的技术问题是,提供一种嵌入式微处理器的串口扩展装置,实现如何对嵌入式微处理器的串口数量进行扩展,降低扩展复杂度和成本,提高微处理器与外部设备之间或者外部设备与外部设备之间的串口互连的灵活性,并且克服现有技术中的微处理器不能通过一个串口同时与多个外部设备进行通信的缺陷。
[0008]为解决以上技术问题,本发明实施例提供一种嵌入式微处理器的串口扩展装置,包括微处理器和可编程逻辑器件。
[0009]所述微处理器包括M个串口和N个控制端口 ;所述可编程逻辑器件包括K个通用输入输出端口 ;其中,K > M > 0,N > O ;
[0010]所述微处理器,用于通过所述N个控制端口设置所述可编程逻辑器件的端口通信模式;
[0011]所述可编程逻辑器件,用于根据所述端口通信模式,对器件内部的可编程逻辑电路进行编程,控制所述可编程逻辑器件上的各个通用输入输出端口的通信互连关系;
[0012]所述可编程逻辑器件的各个通用输入输出端口,用于根据所述通用输入输出端口的通信互连关系,连接一种或多种外围设备,实现所述外围设备与所述微处理器之间的信号传输,和/或,实现所述外围设备之间的信号传输。
[0013]优选地,所述可编程逻辑器件为CPLD器件。
[0014]在一种可实现方式中,所述微处理器上的N个控制端口用于通过并行通信方式,指示和控制所述可编程逻辑器件的端口通信模式。
[0015]其中,所述微处理器控制所述N个控制端口的输出电平,用于组成指示所述可编程逻辑器件的端口通信模式的N位二进制数,所述端口通信模式的数量为2n。或者,所述微处理器控制所述N个控制端口的任意P个控制端口的电平,用于组成指示所述可编程逻辑器件的端口通信模式的P位二进制数,所述端口通信模式的数量为2P,0 < P < N ;所述微处理器控制其余的(N-P)个控制端口的电平,用于选通执行当前端口通信模式的外围设备。
[0016]进一步地,所述可编程逻辑器件,还用于对每一种所述端口通信模式逐一建立端口互连映射关系,并根据所述N个控制端口当前的电平值和所述通用输入输出端口的互连映射关系,对逻辑器件内部电路进行编程,选通与所述控制端口当前的电平值相对应的通用输入输出端口。
[0017]在又一种可实现方式中,所述微处理器上的N个控制端口用于通过串行通信方式,指示和控制所述可编程逻辑器件的端口通信模式。
[0018]本发明提供的嵌入式微处理器的串口扩展装置,采用可编程逻辑器件作为桥梁,为嵌入式系统中的微处理器与外设之间,以及外设与外设之间提供了一种灵活的端口互连方案。微处理器通过可编程逻辑器件尤其是CPLD (Complex Programmable Logic Device,复杂可编程逻辑器件)器件连接,可通过建立微处理器自身串口与CPLD器件的通用输入输出端口(GPIO,General Purpose Input/Output)的映射关系,将微处理器的串口拓展为CPLD器件所具备的通用输入输出端口,从而通过CPLD器件的通用输入输出端口与外部设备连接。本发明只需要通过对可编程逻辑器件中的内部逻辑电路的软件控制,即可实现对可编程逻辑器件的各个通用输入输出端口的切换控制,无需对硬件电路进行任何修改,因此对微处理器的串口数量扩展方便简单,切换灵活,成本低效率高,可移植性强。
【专利附图】

【附图说明】
[0019]图1是本发明提供的一种嵌入式微处理器的串口扩展装置的一个实施例的结构示意图;
[0020]图2为本发明提供的嵌入式微处理器的串口扩展装置与外部设备连接的结构示意图。
【具体实施方式】
[0021]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0022]参见图1,是本发明提供的一种嵌入式微处理器的串口扩展装置的一个实施例的结构示意图。
[0023]所述的嵌入式微处理器的串口扩展装置包括微处理器100和可编程逻辑器件200。
[0024]具体实施时,所述微处理器100包括M个串口和N个控制端口 ;所述可编程逻辑器件200包括K个通用输入输出端口(General Purpose Input/Output,简称GPIO);其中,K> M > 0,N > O。即可编程逻辑器件200的通用输入输出端口数量要比微处理器100的数
量要多。
[0025]所述微处理器100,用于通过所述N个控制端口设置所述可编程逻辑器件200的端
口通信模式。
[0026]所述可编程逻辑器件200,用于根据所述端口通信模式,对器件内部的可编程逻辑电路进行编程,控制所述可编程逻辑器件200上的各个通用输入输出端口的通信互连关系O
[0027]所述可编程逻辑器件200的各个通用输入输出端口,用于根据所述通用输入输出端口的通信互连关系,连接一种或多种外围设备,实现所述外围设备与所述微处理器100之间的信号传输,和/或,实现所述外围设备之间的信号传输。
[0028]其中,所述可编程逻辑器件200优选为CPLD (Complex Programmable LogicDevice,复杂可编程逻辑器件)器件。CPLD是从PAL (Programmable Array Logic,可编程阵列逻辑)和GAL(Generic Array Logic,通用阵列逻辑)器件发展出来的器件,相对PAL和GAL器件而言,CPLD规模大,结构复杂,属于大规模集成电路范围。
[0029]CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,其基本设计方法是借助集成开发软件平台,利用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载线缆将代码传送到目标CPLD芯片中,实现设计功能的数字系统。
[0030]需要说明的是,本发明提供的可编程逻辑器件可采用不同于CPLD的可编程逻辑器件,譬如:FPGA (Field — Programmable Gate Array,现场可编程门阵列)器件。虽然采用FPGA扩展微处理器串口数量的实现方案也较为灵活,可扩展性和可移植性高,但是由于FPGA器件的成本较高,而且功耗大,其所需要的外围支撑电路以及驱动程序均较之于CPLD器件要复杂,不适用于低成本、低功耗的应用场合。而CPLD器件具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等一系列优点,本发明优选采用CPLD器件作为扩展微处理器串口的可编程逻辑器件。
[0031]具体实施时,CPLD器件200可以用梯形图来编程逻辑功能,也可以用硬件描述语言来编写,常用的语言有Verilog HDL和VHDL。
[0032]Verilog HDL 是一种硬件描述语言(Hardware Description Language,简称 HDL),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。VHDL(Very-High-Speed IntegratedCircuit Hardware Description Language,超高速集成电路硬件描述语言)和 Verilog HDL是世界上最流行的两种硬件描述语言。因此,在本实施例中,可以采用这两种硬件描述语言,对CPLD器件200的各个接口的连接关系进行描述和编程,将描述CPLD各个接口的连接关系的代码“烧写”或下载到CPLD器件200中。
[0033]作为一个具体的实施例子,如图1所示,微处理器100具有六个串口 COMA?C0MF,以及五个控制端口 IOl?105。CPLD器件200上具有的IO(Input-Output)输入输出接口(作为对微处理器串口的扩展端口)数量远大于微处理器100上的串口数量。特别地,如图1所示型号的CPLD器件200共有36个输入输出接口。其中,微处理器100的六个串口COMA?COMF与CPLD器件200上的IO接口 I?12物理连接,微处理器100上的每个串口分别对应于CPLD器件200的两个IO接口 ;微处理器100通过控制端口 IOl?105的电平值,控制CPLD器件200的端口通信模式,即建立一种端口互连的对应关系,使得微处理器100的六个串口 COMA?COMF可以通过CPLD器件200上的一个或多个IO接口与外部设备进行通信。微处理器100与外设所有串口直接连到CPLD器件200的IO接口上,只要CPLD器件200的IO足够多,就可以接入更多的端口和外部设备,可升级性与可扩散性是普通数字逻辑芯片无法比拟的。
[0034]控制微处理器100的各个串口与CPLD器件200上的其他通用输入输出端口的信号连通关系;或者,当CPLD器件200上的一个或多个IO接口是用于连接外围设备时,则CPLD器件200可以根据控制端口 IOl?105的电平值接通所述外围设备与微处理器100的信号连接,或者两种外围设备之间的信号连接,无需经过微处理器100的处理。因此CPLD器件200在本发明中起到了转接桥梁的作用。
[0035]譬如,CPLD器件200通过以下伪代码对芯片上的各个接口的连通关系进行编程控
制:
[0036]
【权利要求】
1.一种嵌入式微处理器的串口扩展装置,其特征在于,包括微处理器和可编程逻辑器件; 所述微处理器包括M个串口和N个控制端口 ;所述可编程逻辑器件包括K个通用输入输出端口 ;其中,K > M > O,N > O ; 所述微处理器,用于通过所述N个控制端口设置所述可编程逻辑器件的端口通信模式; 所述可编程逻辑器件,用于根据所述端口通信模式,对器件内部的可编程逻辑电路进行编程,控制所述可编程逻辑器件上的各个通用输入输出端口的通信互连关系; 所述可编程逻辑器件的各个通用输入输出端口,用于根据所述通用输入输出端口的通信互连关系,连接一种或多种外围设备,实现所述外围设备与所述微处理器之间的信号传输,和/或,实现所述外围设备之间的信号传输。
2.如权利要求1所述的嵌入式微处理器的串口扩展装置,其特征在于,所述可编程逻辑器件为CPLD器 件。
3.如权利要求1所述的嵌入式微处理器的串口扩展装置,其特征在于,所述微处理器上的N个控制端口用 于通过并行通信方式,指示和控制所述可编程逻辑器件的端口通信模式。
4.如权利要求3所述的嵌入式微处理器的串口扩展装置,其特征在于,所述微处理器控制所述N个控制端口的输出电平,用于组成指示所述可编程逻辑器件的端口通信模式的N位二进制数,所述端口通信模式的数量为2n。
5.如权利要求3所述的嵌入式微处理器的串口扩展装置,其特征在于, 所述微处理器控制所述N个控制端口的任意P个控制端口的电平,用于组成指示所述可编程逻辑器件的端口通信模式的P位二进制数,所述端口通信模式的数量为2P,O < P< N ; 所述微处理器控制其余的(N-P)个控制端口的电平,用于选通执行当前端口通信模式的外围设备。
6.如权利要求4或5所述的嵌入式微处理器的串口扩展装置,其特征在于,所述可编程逻辑器件,还用于对每一种所述端口通信模式逐一建立串口互连映射关系,并根据所述N个控制端口当前的电平值和所述通用输入输出端口互连映射关系,对逻辑器件内部电路进行编程,选通与所述控制端口当前的电平值相对应的通用输入输出端口。
7.如权利要求1所述的嵌入式微处理器的串口扩展装置,其特征在于, 所述微处理器上的N个控制端口用于通过串行通信方式,指示和控制所述可编程逻辑器件的端口通信模式。
【文档编号】G06F13/40GK104021103SQ201410245633
【公开日】2014年9月3日 申请日期:2014年6月4日 优先权日:2014年6月4日
【发明者】陈伟, 宾显文, 林钦坚 申请人:广州中海达卫星导航技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1