基于S3C2440和嵌入式Linux的扩展串口设计
摘要:在嵌入式系统常需用到多个串口,但常用的ARM微控制器上只有3个串口,常常不能满足需要。针对TQ2440开发板的特点,介绍了在TQ2440开发板中利用TL16C554A芯片来扩展串口的方案,并给出了硬件原理图和部分程序。详细阐述了S3C2440芯片与TL16C554芯片之间的接口设计和扩展串口驱动程序的移植。最后对串口进行了测试,使Linux系统的启动信息通过扩展串口显示出来。
关键词:S3C2440;TL16C554A;扩展串口;ARM9嵌入式系统;TQ2440开发板
随着计算机网络的发展,以及现场总线等技术的广泛使用,串口通讯在各种场合的应用越来越广泛。在集中控制系统中,需要在多个串口间进行通信,而在一般计算机上,只有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:串行发送数据。
1.2 系统总线接口、GPIO接口
TQ2440开发板以S3C2440芯片作为控制器,主频400MHz,外扩64 M内存,256 M闪存,并集成了多种接口,本设计中使用开发板上的系统总线接口与GPIO(通用输入输出接口)和TL16c554A相连。
评论