一种多串口数据通讯实现方法转让专利

申请号 : CN201410082158.8

文献号 : CN103853683B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李娜陈乃阔

申请人 : 山东超越数控电子有限公司

摘要 :

本发明公开了一种多串口数据通讯实现方法,包括由X86架构计算机linux系统、PCIe多串口卡驱动、串口驱动、linux驱动和国产平台计算机linux操作系统,本发明设计基于X86架构计算机平台的linux操作系统,分析了PCIe多串口数据通讯卡驱动、串口驱动和linux内核的关系;根据Linux设备驱动的结构,实现了PCIe多串口数据通讯卡驱动、串口驱动和linux内核在国产平台计算机上的应用,并完善了国产平台计算机的多串口识别、数据通讯功能。在国产平台计算机多串口数据通讯调试中,该发明可以作为一种调试方法,具有通用性强、简单可控、性价比高等特点,能够顺利完成多串口的数据通讯,解决国产平台计算机用户定制串口的问题,避免资源浪费,提高了性价比。

权利要求 :

1.一种多串口数据通讯实现方法,所述方法涉及X86架构计算机linux系统、PCIe多串口数据通讯卡驱动、串口驱动、linux驱动和国产平台计算机linux操作系统,其特征在于:所述方法基于X86架构计算机linux系统,分析PCIe多串口数据通讯卡驱动、串口驱动和linux内核的关系;根据Linux设备驱动的结构,实现PCIe多串口数据通讯卡驱动、串口驱动和linux内核在国产平台计算机上的应用,并完善了国产平台计算机的多串口识别、数据通讯功能;所述方法实现步骤如下:

1)通过X86架构计算机linux系统,分析Linux内核、串口驱动及其与PCIe多串口数据通讯卡驱动程序的关系;

根据Linux设备驱动的结构,在linux内核中补丁PCIe多串口数据通讯卡驱动,实现X86架构计算机linux系统下PCIe多串口数据通讯功能;

根据X86架构计算机linux系统下多串口数据通讯原理,将PCIe多串口数据通讯卡驱动移植到国产平台计算机的linux内核中,根据linux内核串口驱动的结构,实现国产平台计算机的多串口数据通讯功能;

2)根据步骤1)完成国产平台计算机linux系统下的多串口数据通讯功能,对用户定制串口进行识别优化,将内核串口驱动中有关CPU串口配置:#ifdef CONFIG_CPU_UARTPORT_LOONGSON3(CPU_UART0_MEM_BASE, CPU_UART0_MAP_BASE,UART_CLK_33M),

PORT_LOONGSON3(CPU_UART1_MEM_BASE, CPU_UART1_MAP_BASE,UART_CLK_33M),

SUPERIO扩展串口配置:

static struct plat_serial8250_port loongson3a_data[] = {PORT(0x3f8, 9),

PORT(0x2f8, 7),

PORT(0x338, 4),

PORT(0x238, 3),

PORT(0x3e8, 4),

PORT(0x2e8, 3),

//PORT_M(58,0xffffffffbfe001e8),//PORT_M(21,0xffffffffb80002f8),//PORT_M(21,0xffffffffb80003f8),{ },

};

进行优化,根据实际需要保留串口,实现多串口识别优化。

说明书 :

一种多串口数据通讯实现方法

技术领域

[0001] 本发明涉及linux操作系统下的多串口数据通讯技术领域,包括台式桌面计算机、计算机终端、指控计算机等设备;尤其涉及基于国产平台计算机的多串口数据通讯技术和方法。技术背景
[0002] 多串口数据通讯是计算机应用方向的一个重要分支,主要研究的是数据的多串口采集、存储和处理。基于PCI总线技术的多串口数据通讯卡,一直是市场追求的热点。在总线技术中,PCI局部总线凭借其优异的数据传输性能,成为微机总线的主流。随着国防信息化的发展,基于国产平台计算机的多串口数据通讯逐渐成为一种需求。
[0003] 本发明设计对PCIe多串口数据通讯技术进行了探讨和研究, 基于X86架构linux操作系统,分析了Linux内核及其与设备驱动程序的关系,根据Linux设备驱动的结构保证了PCIe多串口数据通讯卡能应用于国产平台计算机的linux操作系统。本发明设计能够顺利完成多串口的数据通讯,解决国产平台计算机用户定制串口的问题,避免资源浪费,提高了性价比。

发明内容

[0004] 本发明要解决的技术问题是:为了实现国产化计算机多串口数据通讯功能,解决国产平台计算机用户定制串口的问题,本发明设计基于X86架构计算机平台的linux操作系统,分析了PCIe多串口数据通讯卡驱动、串口驱动和linux内核的关系;根据Linux设备驱动的结构,实现了PCIe多串口数据通讯卡驱动、串口驱动和linux内核在国产平台计算机上的应用,并完善了国产平台计算机的多串口识别、数据通讯功能。
[0005] 本发明所采用的技术方案为:
[0006] 一种多串口数据通讯实现方法,包括由X86架构计算机linux系统、PCIe多串口卡驱动、串口驱动、linux驱动和国产平台计算机linux操作系统,基于X86架构计算机平台的linux操作系统,分析了PCIe多串口数据通讯卡驱动、串口驱动和linux内核的关系;根据Linux设备驱动的结构,实现了PCIe多串口数据通讯卡驱动、串口驱动和linux内核在国产平台计算机上的应用,并完善了国产平台计算机的多串口识别、数据通讯功能;
[0007] 所述方法实现步骤如下:
[0008] 1)通过X86架构计算机linux系统,分析Linux内核、串口驱动及其与PCIe多串口数据通讯卡驱动程序的关系;
[0009] 根据Linux设备驱动的结构,在linux内核中补丁PCIe多串口数据通讯卡驱动,实现X86架构计算机linux系统下PCIe多串口数据通讯功能;
[0010] 根据X86架构计算机linux系统下多串口数据通讯原理,将PCIe多串口数据通讯卡驱动移植到国产平台计算机的linux内核中,根据linux内核串口驱动的结构,实现国产平台计算机的多串口数据通讯功能。
[0011] 2)根据步骤1)完成国产平台计算机linux系统下的多串口数据通讯功能,为了方便用户对多串口数据通讯的应用,需要对用户定制串口进行识别优化,这就需要将内核串口驱动中有关CPU串口配置:
[0012] #ifdef CONFIG_CPU_UART
[0013] PORT_LOONGSON3(CPU_UART0_MEM_BASE, CPU_UART0_MAP_BASE,
[0014] UART_CLK_33M),
[0015] PORT_LOONGSON3(CPU_UART1_MEM_BASE, CPU_UART1_MAP_BASE,
[0016] UART_CLK_33M),
[0017] SUPERIO扩展串口配置:
[0018] static struct plat_serial8250_port loongson3a_data[] = {[0019] PORT(0x3f8, 9),
[0020] PORT(0x2f8, 7),
[0021] PORT(0x338, 4),
[0022] PORT(0x238, 3),
[0023] PORT(0x3e8, 4),
[0024] PORT(0x2e8, 3),
[0025] //PORT_M(58,0xffffffffbfe001e8),
[0026] //PORT_M(21,0xffffffffb80002f8),
[0027] //PORT_M(21,0xffffffffb80003f8),
[0028] { },
[0029] };
[0030] 进行优化,从而根据实际需要保留串口,实现多串口识别优化。
[0031] 本发明的有益效果为:
[0032] 在国产平台计算机多串口数据通讯调试中,该发明可以作为一种调试方法,具有通用性强、简单可控、性价比高等特点,能够顺利完成多串口的数据通讯,解决国产平台计算机用户定制串口的问题,避免资源浪费,提高了性价比。

附图说明

[0033] 图1为多串口数据通讯实现框图;
[0034] 图2为多串口数据通讯实现流程图。

具体实施方式

[0035] 下面参照附图,通过具体实施方式对本发明进一步说明:
[0036] 一种多串口数据通讯实现方法,如图1所示,包括由X86架构计算机linux系统、PCIe多串口卡驱动、串口驱动、linux驱动和国产平台计算机linux操作系统,基于X86架构计算机平台的linux操作系统,分析了PCIe多串口数据通讯卡驱动、串口驱动和linux内核的关系;根据Linux设备驱动的结构,实现了PCIe多串口数据通讯卡驱动、串口驱动和linux内核在国产平台计算机上的应用,并完善了国产平台计算机的多串口识别、数据通讯功能;所述方法实现步骤如下:
[0037] 1)如图2所示,通过X86架构计算机linux系统,分析Linux内核、串口驱动及其与PCIe多串口数据通讯卡驱动程序的关系;
[0038] 根据Linux设备驱动的结构,在linux内核中补丁PCIe多串口数据通讯卡驱动,实现X86架构计算机linux系统下PCIe多串口数据通讯功能;
[0039] 根据X86架构计算机linux系统下多串口数据通讯原理,将PCIe多串口数据通讯卡驱动移植到国产平台计算机的linux内核中,根据linux内核串口驱动的结构,实现国产平台计算机的多串口数据通讯功能。
[0040] 2)根据步骤1)完成国产平台计算机linux系统下的多串口数据通讯功能,为了方便用户对多串口数据通讯的应用,需要对用户定制串口进行识别优化,这就需要将内核串口驱动中有关CPU串口配置:
[0041] #ifdef CONFIG_CPU_UART
[0042] PORT_LOONGSON3(CPU_UART0_MEM_BASE, CPU_UART0_MAP_BASE,
[0043] UART_CLK_33M),
[0044] PORT_LOONGSON3(CPU_UART1_MEM_BASE, CPU_UART1_MAP_BASE,
[0045] UART_CLK_33M),
[0046] SUPERIO扩展串口配置:
[0047] static struct plat_serial8250_port loongson3a_data[] = {[0048] PORT(0x3f8, 9),
[0049] PORT(0x2f8, 7),
[0050] PORT(0x338, 4),
[0051] PORT(0x238, 3),
[0052] PORT(0x3e8, 4),
[0053] PORT(0x2e8, 3),
[0054] //PORT_M(58,0xffffffffbfe001e8),
[0055] //PORT_M(21,0xffffffffb80002f8),
[0056] //PORT_M(21,0xffffffffb80003f8),
[0057] { },
[0058] };
[0059] 进行优化,从而根据实际需要保留串口,实现多串口识别优化。