您的位置 首页 FPGA

选用S3C24449芯片在TQ2440开发板完成串口扩展

采用S3C24449芯片在TQ2440开发板实现串口扩展-随着计算机网络的发展,以及现场总线等技术的广泛使用,串口通讯在各种场合的应用越来越广泛。在集中控制系统中,需要在多个串口间进行通信,而在一般计算机上,只有1~3个串口,为了实现对多点的控制,需要对串口进行扩展。

跟着核算机网络的开展,以及现场总线等技能的广泛运用,串口通讯在各种场合的运用越来越广泛。在会集操控体系中,需要在多个串口间进行通讯,而在一般核算机上,只需1~3个串口,为了完结对多点的操控,需要对串口进行扩展。

ARM芯片是现在在嵌入式体系中运用比较广泛的一种芯片,由于能够运转操作体系,以及具有包含LCD、串口通讯、网络通讯、存储芯片等许多外围接口芯片的支撑,使得ARM广泛运用于检测、通讯、操控等范畴。

本文以ARM 920T核的S3C24449芯片作为微操控器,在TQ2440开发板进行串口扩展,运用开发板上的体系总线接口和通用输入输出接口别离与扩展串口相连,到达一起与多台串口设备并行通讯的方针。

1 、硬件介绍

1.1 异步通讯芯片——TL16C554A

TL16C554A含有4路异步通讯单元(Asynchronous Communications Element ACE),每路ACE均可接纳外围设备的串行数据,并将其转换为并行数据供CPU运用,也可将CPU的并行数据转换为串行数据发送到外围设备。

TL16C554A引脚如图1所示。各首要引脚的功用阐明如下:A0—A2用于挑选片内寄存器;D0—D7进行数据传输;IOR和IOW进行读写;CSA,CSB,CSC,CSD用于选定详细串口;XTAL1,XTAL2可接晶振或外部时钟信号;INTA,INTB,INTC,INTD为4个独立外部中止信号;RXA,RXB,RXC,RXD:串行接纳数据;TXA,TXB,TXC,TXD:串行发送数据。

选用S3C24449芯片在TQ2440开发板完结串口扩展

1.2 体系总线接口、GPIO接口

TQ2440开发板以S3C2440芯片作为操控器,主频400MHz,外扩64 M内存,256 M闪存,并集成了多种接口,本规划中运用开发板上的体系总线接口与GPIO(通用输入输出接口)和TL16c554A相连。

1.2.1 体系总线接口

本开发板上的体系总线接口中共包含8根地址线(A0~A6,A24),16根数据线(DATA0~DATA15),4个中止,4个片选等信号,该总线接口集成了IDE所需的一切引出点,便利用户扩展,接口电路如图2所示。

选用S3C24449芯片在TQ2440开发板完结串口扩展

1.2.2 GPIO接口

GPIO是通用输入输出口的简称,本开发板带有一个40Pin 2.0 mm距离的GPIO接口,如图3所示。不只包含许多充裕的GPIO引脚,还包含了一些其他CPU引脚,如AIN0~AIN3,CLKOUT等。如SPI接口、I2C接口、LED1~LED4(实践便是GPB5~GPB8),它们其实也是GPIO,不过是以特别功用接口来标称界说的,这些都能够经过相应的CPU寄存器来设置更改它们的用处。

选用S3C24449芯片在TQ2440开发板完结串口扩展

2、 硬件规划

在硬件规划中,将TQ2440开发板扩展口的地址线ADDR0,ADDR1,ADDR2与16C554A的A0,A1,A2直接相连,TL16C554A芯片A0,A1,A2的不同的组合代表芯片内不同的寄存器。

在与TL16C554A的衔接中,由于TL16C554A只需8位,只需TL16C554A的D0~D7和开发板的DATA0~DATA7相连。读写信号直接相连(开发板的nOE、nWE别离与串口的IOE、IOW直连)。由于16C554芯片发动要有必定的宽度的脉冲,能够从GPA 12输出必定的宽度的脉冲来完结。

每片16C554A能够将数据总线上的数据和4个串行端口的数据进行彼此的转化,两片16C554A芯片共有8个串行口,经过3根地址线ADDR4,ADDR5,ADDR24经过74LS138挑选8个串口中的恣意一个。

由于计划选用中止方法,所以将NSEL置高位,即答应芯片中止。16C554A有INTA、INTB、INTC、IN TD4个中止线,榜首片扩展串口与体系总线的EINT1,EINT2,EINT5,EINT6相连,第二片扩展串口与GPIO中的EINT11,EINT13,EINT15,EIN39中止相连,使得任一片芯片的恣意的端口都能发生中止。

S3C2440的A0,A1,A2,A4,A5,A24经过不同组合能够挑选8个不同的端口。nGCS5与74LS138译码器片选脚相连,依据S3C2440对地址空间的界说,这样就确认了榜首片16C554A扩展芯片4个端口的拜访地址为0X28000000,0X28000010,0X28000020,0X28000030,第二片16C554A扩展芯片4个端口的拜访地址为0X29000000,0X29000010,0X29000020,0X29000030,依据端口基地址就能够确认片内的各个寄存器地址。详细衔接如图4所示。

选用S3C24449芯片在TQ2440开发板完结串口扩展

3、 驱动程序移植

软件规划首要是为设备编写驱动程序。设备驱动是介于硬件和操作体系之间的软件接口,首要功用包含:勘探和初始化设备;从设备接纳数据并提交给内核;从内核接纳数据送到设备;检测和处理设备过错。

串口驱动程序从上到下分为4层:终端设备层、行规程、串口笼统层、串口芯片层。其间,串口芯片层与详细的芯片相关,首要是向串口笼统层供给串口芯片所用的资源,还进行一些与芯片相关的设置。

TL16C554A扩展串口芯片归于规范串口,内核的串口驱动程序对它支撑它的驱动程序便是Linux内核代码中的driver/seria/8250.c.进口函数是serial8250_init,它用于向串口笼统层供给注册串口的物理信息。串口的物理信息首要有两类:拜访地址和中止号。所以只需设置好这两类物理信息,就能够驱动扩展串口了,图5为驱动程序移植流程。

选用S3C24449芯片在TQ2440开发板完结串口扩展

3.1 构建扩展串口的数据结构

串口的物理信息存储在内核源程序arch/arm/plats3c24xx/common-smdk.c中,所以首要作业是在commonsmdk.c源文件中增加三段代码:

1)增加头文件

源程序中要包含头文件linux/serial_8250.h,用于告知编译器运用8250.c作为扩展串口的源程序;

2)增加串口的物理信息

在common-smdk.c文件中增加8个元素的structplat_serial8250_port结构数组,并参加数据项,如每个串口运用的物理地址和中止号等信息,使体系发动后能找到串口。下面以第1片TL16c554A的第1个串口CSA为例阐明如安在源程序中增加数据结构:

选用S3C24449芯片在TQ2440开发板完结串口扩展

3)参加内核设备列表中

把串口设备(s3c_deviee_8250代表TL16c550A芯片)参加到内核的platform_device结构中

staTIc struct platform_device_initdata*smdk_devs[]={ &s3c_device_8250,};

3.2 增加开发板代码使串口可用

首要修正drivers/serial/8250.c文件,使BANK5以8位的位宽拜访TL16c554A芯片,并指定芯片的中止触发方法。

1)增加头文件asm/areh-s3c2410/regs-mem.h,定位TL16c554A地点的地址空间;

2)设置存储操控器的BANK5的位宽(8位)

在serial8250_init(void)初始化函数中把存储操控器的位宽寄存器设为0X22011110;

3)指定中止触发方法

由于TL160554A的中止信号INTA、INTB、INTC、INTD为高电平有用,所以需将INTA、INTB、INTC、INTD上升沿触发,在调用中止函数req-uest_irq前应设置中止标志为IRQF_TRIGGER_RISING。

3. 3 增加内核装备项

在内核源代码的driver/serial/Kconfig中增加config条目CONFIG_SERIAL_EXTEND_S3C24XX,内核编译时选定该选项能够把驱动程序编译进体系中。

4 、测验扩展串口

测验的作业包含编译内核、在根文件体系中增加设备文件、修正体系初始化脚本、测验扩展串口几个过程。图6为串口测验流程图。

选用S3C24449芯片在TQ2440开发板完结串口扩展

1)装备、编译内核

装备内核时增加装备选项CONFIG_SERIAL_EXTEND_S3C24XX,履行“make uImage”指令,编译内核。

2)修正根文件体系

在Linux体系中经过设备文件来拜访详细的物理设备,故运用mknod指令,增加ttyS0,ttyS1,…,ttyS7设备文件,别离对应两片TL16c554A的8个串口。指令格局如下:

# mknod/dev/ttyS0 c 4 64

3)修正装备文件

在/etc/inittab装备文件中增加ttyS0::askfirat:-/bin/sh

4)测验

把榜首个串口与主机相连,设置U-Boot的发动参数为:noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttyS0,重新发动开发板,就能在超级终端下看到linux体系发动信息了。

5 、结束语

本文供给了在原有TQ2440开发板中扩展8个串口,选用中止服务的计划,提高了ARM9体系运转功率。在此基础上能够进一步扩展,将串口扩展到12个、16个或许更多。

责任编辑:gt

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/96087.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部