基于S3C2440和嵌入式Linux的擴(kuò)展串口設(shè)計(jì)
摘要:在嵌入式系統(tǒng)常需用到多個(gè)串口,但常用的ARM微控制器上只有3個(gè)串口,常常不能滿(mǎn)足需要。針對(duì)TQ2440開(kāi)發(fā)板的特點(diǎn),介紹了在TQ2440開(kāi)發(fā)板中利用TL16C554A芯片來(lái)擴(kuò)展串口的方案,并給出了硬件原理圖和部分程序。詳細(xì)闡述了S3C2440芯片與TL16C554芯片之間的接口設(shè)計(jì)和擴(kuò)展串口驅(qū)動(dòng)程序的移植。最后對(duì)串口進(jìn)行了測(cè)試,使Linux系統(tǒng)的啟動(dòng)信息通過(guò)擴(kuò)展串口顯示出來(lái)。
關(guān)鍵詞:S3C2440;TL16C554A;擴(kuò)展串口;ARM9嵌入式系統(tǒng);TQ2440開(kāi)發(fā)板
隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,以及現(xiàn)場(chǎng)總線(xiàn)等技術(shù)的廣泛使用,串口通訊在各種場(chǎng)合的應(yīng)用越來(lái)越廣泛。在集中控制系統(tǒng)中,需要在多個(gè)串口間進(jìn)行通信,而在一般計(jì)算機(jī)上,只有1~3個(gè)串口,為了實(shí)現(xiàn)對(duì)多點(diǎn)的控制,需要對(duì)串口進(jìn)行擴(kuò)展。
ARM芯片是目前在嵌入式系統(tǒng)中應(yīng)用比較廣泛的一種芯片,由于可以運(yùn)行操作系統(tǒng),以及擁有包括LCD、串口通訊、網(wǎng)絡(luò)通訊、存儲(chǔ)芯片等大量外圍接口芯片的支持,使得ARM廣泛應(yīng)用于檢測(cè)、通訊、控制等領(lǐng)域。
本文以ARM 920T核的S3C24449芯片作為微控制器,在TQ2440開(kāi)發(fā)板進(jìn)行串口擴(kuò)展,利用開(kāi)發(fā)板上的系統(tǒng)總線(xiàn)接口和通用輸入輸出接口分別與擴(kuò)展串口相連,達(dá)到同時(shí)與多臺(tái)串口設(shè)備并行通信的目標(biāo)。
1 硬件介紹
1.1 異步通信芯片——TL16C554A
TL16C554A含有4路異步通信單元(Asynchronous Communications Element ACE),每路ACE均可接收外圍設(shè)備的串行數(shù)據(jù),并將其轉(zhuǎn)換為并行數(shù)據(jù)供CPU使用,也可將CPU的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)發(fā)送到外圍設(shè)備。
TL16C554A引腳如圖1所示。各主要引腳的功能說(shuō)明如下:A0—A2用于選擇片內(nèi)寄存器;D0—D7進(jìn)行數(shù)據(jù)傳輸;IOR和IOW進(jìn)行讀寫(xiě);CSA,CSB,CSC,CSD用于選定具體串口;XTAL1,XTAL2可接晶振或外部時(shí)鐘信號(hào);INTA,INTB,INTC,INTD為4個(gè)獨(dú)立外部中斷信號(hào);RXA,RXB,RXC,RXD:串行接收數(shù)據(jù);TXA,TXB,TXC,TXD:串行發(fā)送數(shù)據(jù)。
1.2 系統(tǒng)總線(xiàn)接口、GPIO接口
TQ2440開(kāi)發(fā)板以S3C2440芯片作為控制器,主頻400MHz,外擴(kuò)64 M內(nèi)存,256 M閃存,并集成了多種接口,本設(shè)計(jì)中使用開(kāi)發(fā)板上的系統(tǒng)總線(xiàn)接口與GPIO(通用輸入輸出接口)和TL16c554A相連。
評(píng)論