《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于S3C2440和嵌入式Linux的擴展串口設計
基于S3C2440和嵌入式Linux的擴展串口設計
Icbuy
Icbuy
摘要:  隨著計算機網絡的發展,以及現場總線等技術的廣泛使用,串口通訊在各種場合的應用越來越廣泛。在集中控制系統中,需要在多個串口間進行通信,而在一般計算機上,只有1~3個串口,為了實現對多點的控制,需要對串口進行擴展。
Abstract:
Key words :
</a>現場總線" title="現場總線">現場總線" title="現場總線">現場總線等技術的廣泛使用,串口通訊在各種場合的應用越來越廣泛。在集中控制系統中,需要在多個串口間進行通信,而在一般計算機上,只有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:串行發送數據。

a.JPG

  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所示。

b.JPG

  1.2.2 GPIO接口

  GPIO是通用輸入輸出口的簡稱,本開發板帶有一個40Pin 2.0 mm間距的GPIO接口,如圖3所示。不僅包含很多富余的GPIO引腳,還包含了一些其他CPU引腳,如AIN0~AIN3,CLKOUT等。如SPI接口、I2C接口、LED1~LED4(實際就是GPB5~GPB8),它們其實也是GPIO,不過是以特殊功能接口來標稱定義的,這些都可以通過相應的CPU寄存器來設置更改它們的用途。

c.JPG

  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所示。

d.JPG

  3 驅動程序移植

  軟件設計主要是為設備編寫驅動程序。設備驅動是介于硬件和操作系統之間的軟件接口,主要功能包括:探測和初始化設備;從設備接收數據并提交給內核;從內核接收數據送到設備;檢測和處理設備錯誤。

  串口驅動程序從上到下分為4層:終端設備層、行規程、串口抽象層、串口芯片層。其中,串口芯片層與具體的芯片相關,主要是向串口抽象層提供串口芯片所用的資源,還進行一些與芯片相關的設置。

  TL16C554A擴展串口芯片屬于標準串口,內核的串口驅動程序對它支持它的驅動程序就是Linux內核代碼中的driver/seria/8250.c.入口函數是serial8250_init,它用于向串口抽象層提供注冊串口的物理信息。串口的物理信息主要有兩類:訪問地址和中斷號。所以只要設置好這兩類物理信息,就可以驅動擴展串口了,圖5為驅動程序移植流程。

e.JPG

  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為例說明如何在源程序中添加數據結構:

f.JPG

g.JPG

  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為串口測試流程圖。

h.JPG

  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個或者更多。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久婷婷久久| 亚洲国产精品专区久久| 欧美.日韩.国产.一区.二区| 亚洲欧美日韩直播| 欧美一区二视频在线免费观看| 国模精品一区二区三区| 欧美日韩性视频在线| 欧美小视频在线| 免费看黄裸体一级大秀欧美| 欧美一区三区二区在线观看| 国内不卡一区二区三区| 欧美私人啪啪vps| 久久综合色播五月| 国产精品色一区二区三区| 欧美精品少妇一区二区三区| 亚洲国产天堂久久国产91| 国产精品久久婷婷六月丁香| 亚洲国产视频一区| 国产欧美一区二区三区国产幕精品| 国产精品一区二区视频| 一区福利视频| 国产精品免费久久久久久| 野花国产精品入口| 久久久精品免费视频| 欧美成年视频| 亚洲精品一二区| 久久精品国产999大香线蕉| 欧美在线地址| 欧美精品午夜视频| 亚洲国产精品v| 久久狠狠一本精品综合网| 亚洲激情在线观看视频免费| 欧美精品尤物在线| 国产日韩欧美日韩大片| 欧美日本在线| 亚洲日本久久| 99国内精品久久| 亚洲精品美女在线观看播放| 一区二区国产日产| 宅男在线国产精品| 亚洲国产精品传媒在线观看| 亚洲韩国一区二区三区| 久久久久久成人| 国产精品手机视频| 国产精品亚洲成人| 国内视频精品| 欧美日韩国产综合视频在线观看中文| 欧美—级a级欧美特级ar全黄| 亚洲在线中文字幕| 国产麻豆一精品一av一免费| 在线视频免费在线观看一区二区| 亚洲丶国产丶欧美一区二区三区| 国户精品久久久久久久久久久不卡| 国产一区二区三区免费在线观看| 国产精品99久久久久久www| 久久丁香综合五月国产三级网站| 极品尤物久久久av免费看| 日韩视频第一页| 艳妇臀荡乳欲伦亚洲一区| 狠狠色狠狠色综合人人| 亚洲视频在线一区| 久久久久久久综合| 欧美日韩国产三级| 国产亚洲一区在线| 亚洲欧美日本精品| 欧美国产日韩视频| 91久久一区二区| 一本久久综合| 国产日韩一区二区三区在线| 国内揄拍国内精品久久| 亚洲伊人第一页| 欧美三区在线观看| 在线免费观看日本欧美| 国产一区二区三区在线播放免费观看| 亚洲一级特黄| 欧美久久在线| 欧美一区二区福利在线| 国产中文一区二区| 欧美网站在线| 欧美极品色图| 亚洲久久一区| 国产精品老牛| 亚洲男人的天堂在线aⅴ视频| 欧美成熟视频| 久久夜色撩人精品| 亚洲国产另类久久久精品极度| 亚洲夜间福利| 国产在线观看一区| 国产日韩专区在线| 国产综合一区二区| 国产精品久久久久毛片软件| 在线日韩精品视频| 国产精品久久久久毛片软件| 亚洲一区三区视频在线观看| 欧美日韩在线一区| 欧美一级免费视频| 精品99一区二区三区| 亚洲欧美自拍偷拍| 欧美一级艳片视频免费观看| 欧美日韩在线一区二区| 午夜在线视频一区二区区别| 欧美午夜理伦三级在线观看| 国产精品私房写真福利视频| 国产精品入口福利| 亚洲精品一区久久久久久| 免费久久99精品国产自| 蘑菇福利视频一区播放| 欧美自拍偷拍| 国产毛片精品国产一区二区三区| 一区二区三区四区国产| 亚洲尤物视频在线| 国产欧美日韩三级| 欧美国产欧美亚州国产日韩mv天天看完整| 国产婷婷色一区二区三区| 在线日韩中文字幕| 激情综合网激情| 国产亚洲欧美日韩精品| 亚洲欧洲一区二区在线观看| 欧美日韩国产首页| 午夜伦理片一区| 亚洲欧美制服中文字幕| 免费不卡中文字幕视频| 久久gogo国模啪啪人体图| 亚洲美女精品成人在线视频| 亚洲网站啪啪| 国产精品区一区| 久久久午夜视频| 免费观看30秒视频久久| 亚洲欧洲一区二区三区| 99热免费精品| 久久激情中文| 狠狠入ady亚洲精品| 亚洲精品日韩在线| 欧美成人综合一区| 国产精品久久看| 中日韩高清电影网| 在线精品国产欧美| 亚洲人成啪啪网站| 久久久久成人精品免费播放动漫| 国产综合视频在线观看| 在线精品视频一区二区三四| 欧美极品欧美精品欧美视频| 国产欧美一区二区精品仙草咪| 99亚洲伊人久久精品影院红桃| 亚洲第一综合天堂另类专| 亚洲深夜福利在线| 久久精品亚洲一区二区| 一区二区三区在线观看国产| 国产亚洲毛片在线| 亚洲一级片在线看| 亚洲乱码国产乱码精品精可以看| 国产美女高潮久久白浆| 国产精品久久福利| 欧美一区午夜精品| 欧美日韩在线高清| 欧美一区二区三区在线视频| 亚洲国产91精品在线观看| 亚洲人成在线免费观看| 亚洲一区二区三区视频| 你懂的视频一区二区| 欧美顶级少妇做爰| 亚洲人成77777在线观看网| 亚洲成色777777在线观看影院| 久久精品亚洲精品国产欧美kt∨| 久久久久国产精品www| 亚洲激情女人| 亚洲激情专区| 欧美专区第一页| 激情综合网址| 亚洲丰满在线| 欧美另类在线观看| 亚洲无玛一区| 欧美成人国产一区二区| 久久久久se| 欧美日韩亚洲在线| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲精品123区| 国产精品成人aaaaa网站| 欧美日韩精品免费观看视一区二区| 国产欧美日韩在线视频| 免费成人你懂的| 国产精品一区二区你懂得| 久久偷窥视频| 欧美精品一区二区三区视频| 亚洲一区在线免费观看| 一区二区电影免费观看| 亚洲国产精品传媒在线观看| 国产九九视频一区二区三区| 麻豆国产精品777777在线| 亚洲天堂免费在线观看视频| 久久精品视频在线| 亚洲直播在线一区| 在线观看欧美一区| 国产精品久久久91| 亚洲一区二区三区四区五区午夜| 欧美日韩dvd在线观看| 午夜精品久久| 亚洲欧美日韩视频二区| 好看的亚洲午夜视频在线| 久久国产精品久久久| 亚洲精品孕妇| 一本一道久久综合狠狠老精东影业| 亚洲精品国产视频| 久久综合网色—综合色88| 久久精品系列| 久久精品1区| 亚洲高清在线观看一区| 亚洲二区精品| 另类人畜视频在线| 久久久久亚洲综合| 亚洲国产精品第一区二区三区| 国产精品爽爽爽| 欧美亚洲免费高清在线观看| 91久久午夜| 亚洲成人中文| 美女主播视频一区| 国产一区二区三区网站| 欧美三级在线视频| 国产综合视频在线观看| 国产一区二区三区日韩欧美| 国产精品免费看久久久香蕉| 国产精品一区二区男女羞羞无遮挡| 欧美大片va欧美在线播放| 欧美日韩一级视频| 一区二区三区精品久久久| 欧美黄色日本| 亚洲欧洲一级| 合欧美一区二区三区| 国产精品扒开腿做爽爽爽视频| av成人毛片| 欧美日韩精品一二三区| 欧美视频网站| 亚洲永久免费观看| 欧美日韩国产综合视频在线| 久久人人九九| 欧美在线不卡| 亚洲欧美视频一区二区三区| 亚洲欧美第一页| 久久久久这里只有精品| 六十路精品视频| 激情成人综合| 欧美视频一区二区在线观看| 一区二区激情小说| 亚洲图片在线观看| 亚洲欧美中日韩| 欧美一区二区三区另类| 一色屋精品视频在线看| 欧美**字幕| 在线视频日本亚洲性| 欧美在线免费观看视频| 久久一区亚洲| 国产精品一区=区| 香蕉精品999视频一区二区| 久久九九国产精品怡红院| 国产精品麻豆va在线播放| 亚洲日本成人女熟在线观看| 国产一区二区三区网站| 老司机免费视频一区二区三区| 欧美区二区三区| 免费看亚洲片| 欧美日韩久久精品| 好看的av在线不卡观看| 国产欧美日韩中文字幕在线| 国产精品普通话对白| 亚洲视频大全| 欧美大片免费观看在线观看网站推荐| 国内自拍视频一区二区三区| 国产日韩一区二区三区| 欧美精品一区二区视频| 亚洲精品视频在线观看免费| 国产精品免费视频xxxx| 亚洲一区二区欧美| 欧美日韩激情小视频| 99综合电影在线视频| 国产精品乱子久久久久| 国产欧美一区二区精品仙草咪| 日韩亚洲在线观看| 久热精品视频在线| 亚洲综合第一| 亚洲欧美视频一区| 国产日韩精品一区二区三区在线| 亚洲综合另类| 欧美丝袜一区二区| 亚洲激情精品| 欧美日韩国产三区| 最新成人av在线| 一区二区激情视频| 亚洲国产精品一区在线观看不卡| 99国产精品视频免费观看| 亚洲欧美视频在线观看视频| 亚洲成人在线观看视频| 久久不射中文字幕| 欧美v亚洲v综合ⅴ国产v| 亚洲欧美在线视频观看| 欧美在线观看一区二区| 欧美成人免费在线| 亚洲黄一区二区三区| 久久久久久久久蜜桃| 欧美高清视频在线| 国产日韩在线播放| 亚洲欧美日韩国产精品| 欧美国产激情二区三区| 欧美黄色一级视频| 欧美在线1区| 欧美日韩精品免费观看视一区二区| 亚洲免费观看| 亚洲欧美福利一区二区| 亚洲精品黄网在线观看| 老牛国产精品一区的观看方式| 欧美专区在线播放| 亚洲午夜视频在线| 久久精品国产久精国产爱| 久久综合色8888| 亚洲高清毛片| 女仆av观看一区| 欧美午夜电影在线观看| 久久久久久久久蜜桃| 在线观看欧美激情| 亚洲国产美女精品久久久久∴| 欧美日韩爆操| 免费h精品视频在线播放| 欧美二区在线播放| 久久久久久亚洲精品不卡4k岛国| 一本色道久久综合亚洲精品不| 久久综合伊人77777蜜臀| 国产毛片精品视频| 亚洲国产精品高清久久久| 欧美性猛交视频|