基于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相連。
評論