基于ARM處理器的HDLC通信的DMA實(shí)現(xiàn)
發(fā)布時(shí)間:2008/5/27 0:00:00 訪問次數(shù):556
摘要:以arm7tdmi為內(nèi)核的samsung公司s3c4510b網(wǎng)絡(luò)微控制器(networking mcu)為基礎(chǔ),重點(diǎn)論述如何通過dma(直接內(nèi)存訪問)方式實(shí)現(xiàn)hdlc通信。對(duì)軟件設(shè)計(jì)中緩沖描述符、dma狀態(tài)配置和控制、isr服務(wù)程序設(shè)計(jì)以及相關(guān)的硬件配置進(jìn)行詳細(xì)的描述,并討論如何編寫在操作系統(tǒng)下的驅(qū)動(dòng)程序。 關(guān)鍵詞:hdlc 緩沖描述符 循環(huán)鏈表 中斷服務(wù)程序 dma 目前在嵌入式產(chǎn)品開發(fā)設(shè)計(jì)中,通常是在os(operating system)廠商提供的bsp基礎(chǔ)上進(jìn)行開發(fā)工作;對(duì)于底層硬件的操作,程序設(shè)計(jì)人員很少關(guān)注或只是少量的修改。實(shí)際上很多產(chǎn)品,我們完全可以拋開操作系統(tǒng)的模式,避免不必要的系統(tǒng)開銷,而對(duì)底層的硬件直接進(jìn)行處理。這樣,可以節(jié)省資源提高利用率。當(dāng)然,這樣也會(huì)人為地增加系統(tǒng)開發(fā)設(shè)計(jì)的難度。但是從長(zhǎng)遠(yuǎn)的角度看,進(jìn)行這樣的設(shè)計(jì)思考還是非常必要的,F(xiàn)在一些產(chǎn)品的設(shè)計(jì)開發(fā)中,所缺少的實(shí)際上就是深入了解底層操作,這樣往往使我們丟失了創(chuàng)新的機(jī)會(huì)。 本文主要分析如何在硬件基礎(chǔ)上直接進(jìn)行程序設(shè)計(jì),介紹如何在底層進(jìn)行hdlc通信控制操作,以及如何處理數(shù)據(jù)結(jié)構(gòu)等方面的問題。對(duì)于進(jìn)行驅(qū)動(dòng)程序的設(shè)計(jì)以及進(jìn)行系統(tǒng)設(shè)計(jì),都提供了良好的借鑒。 1 s3c4510b以及hdlc模塊 s3c4510b是三星公司生產(chǎn)的以arm(advanced risc machines)16/32bits的risc arm7tdmi微處理器為內(nèi)核的一種網(wǎng)絡(luò)微控制器(netmcu,networking mcu),主要用于網(wǎng)絡(luò)產(chǎn)品(如mub、router、homepna、soho)的開發(fā)設(shè)計(jì)。這款mcu在arm7tdmi處理器的基礎(chǔ)上,外加2個(gè)通道的hdlc控制器、i2c總線和2個(gè)通道串行接口、1個(gè)mac控制模塊以及統(tǒng)一的mii界面,提供10mhz/100mhz以太網(wǎng)的自適應(yīng)連接。對(duì)于網(wǎng)絡(luò)產(chǎn)品的設(shè)計(jì)提供了靈活的支持。 在軟件開發(fā)設(shè)計(jì)方面,netmcu使用的是arm7tdmi處理器內(nèi)核,所以支持arm的開發(fā)工具(如windriver的tornado、arm的armstd251等)都對(duì)其適用,方便用戶開發(fā)設(shè)計(jì),最大限度地獲得支持資源。 1.1 s3c4510b中的hdlc模塊 s3c4510b的hdlc(high-level digital link controller)控制器擁有2個(gè)串行通道。hdlc模塊支持符合sdlc標(biāo)準(zhǔn)和hdlc標(biāo)準(zhǔn)的cpu/數(shù)據(jù)通道接口,包含2個(gè)dma引警;支持使用對(duì)應(yīng)幀的緩沖區(qū)描述符結(jié)構(gòu),而且可以靈活地配置通道物理編碼模式(nrz,fm,man),選擇本地或者外部時(shí)鐘;支持通過鎖相環(huán)路從接收數(shù)據(jù)流提取時(shí)鐘信號(hào)。使用的hdlc的幀結(jié)構(gòu)如表1所列。
表1 開始標(biāo)志 地址域 控制域 信息域 幀校驗(yàn) 結(jié)束標(biāo)志 7eh 2/4 bytes 1byte 8 bit/byte 16 bit crc 7eh 圖1是s3c4510b hdlc控制器功能結(jié)構(gòu),主要包括總線仲裁單元、dma控制器、8字的發(fā)送接收(tx/rx)fifo、狀態(tài)/控制寄存器和物理收發(fā)器。總線總裁單元負(fù)責(zé)向cpu申請(qǐng)系統(tǒng)總線;dma控制器使用緩沖描述符在無cpu干預(yù)下控制數(shù)據(jù)幀的收發(fā);8字(字=32bit)fifo結(jié)構(gòu)對(duì)cpu和串行接口的數(shù)據(jù)進(jìn)行立即存儲(chǔ);物理收發(fā)器控制hdlc通道的運(yùn)行模式、編解碼等;狀態(tài)/控制寄存器是運(yùn)行的核心,程序設(shè)計(jì)人員通過設(shè)置,檢測(cè)這些寄存器控制數(shù)據(jù)的收發(fā)。 1.2 中斷模式和hdma(hdlc dma)模式 (1)中斷模式 htxfifo結(jié)構(gòu)通過把幀數(shù)據(jù)分別寫入“幀連續(xù)地址”和“幀結(jié)束地址”控制發(fā)送
摘要:以arm7tdmi為內(nèi)核的samsung公司s3c4510b網(wǎng)絡(luò)微控制器(networking mcu)為基礎(chǔ),重點(diǎn)論述如何通過dma(直接內(nèi)存訪問)方式實(shí)現(xiàn)hdlc通信。對(duì)軟件設(shè)計(jì)中緩沖描述符、dma狀態(tài)配置和控制、isr服務(wù)程序設(shè)計(jì)以及相關(guān)的硬件配置進(jìn)行詳細(xì)的描述,并討論如何編寫在操作系統(tǒng)下的驅(qū)動(dòng)程序。 關(guān)鍵詞:hdlc 緩沖描述符 循環(huán)鏈表 中斷服務(wù)程序 dma 目前在嵌入式產(chǎn)品開發(fā)設(shè)計(jì)中,通常是在os(operating system)廠商提供的bsp基礎(chǔ)上進(jìn)行開發(fā)工作;對(duì)于底層硬件的操作,程序設(shè)計(jì)人員很少關(guān)注或只是少量的修改。實(shí)際上很多產(chǎn)品,我們完全可以拋開操作系統(tǒng)的模式,避免不必要的系統(tǒng)開銷,而對(duì)底層的硬件直接進(jìn)行處理。這樣,可以節(jié)省資源提高利用率。當(dāng)然,這樣也會(huì)人為地增加系統(tǒng)開發(fā)設(shè)計(jì)的難度。但是從長(zhǎng)遠(yuǎn)的角度看,進(jìn)行這樣的設(shè)計(jì)思考還是非常必要的。現(xiàn)在一些產(chǎn)品的設(shè)計(jì)開發(fā)中,所缺少的實(shí)際上就是深入了解底層操作,這樣往往使我們丟失了創(chuàng)新的機(jī)會(huì)。 本文主要分析如何在硬件基礎(chǔ)上直接進(jìn)行程序設(shè)計(jì),介紹如何在底層進(jìn)行hdlc通信控制操作,以及如何處理數(shù)據(jù)結(jié)構(gòu)等方面的問題。對(duì)于進(jìn)行驅(qū)動(dòng)程序的設(shè)計(jì)以及進(jìn)行系統(tǒng)設(shè)計(jì),都提供了良好的借鑒。 1 s3c4510b以及hdlc模塊 s3c4510b是三星公司生產(chǎn)的以arm(advanced risc machines)16/32bits的risc arm7tdmi微處理器為內(nèi)核的一種網(wǎng)絡(luò)微控制器(netmcu,networking mcu),主要用于網(wǎng)絡(luò)產(chǎn)品(如mub、router、homepna、soho)的開發(fā)設(shè)計(jì)。這款mcu在arm7tdmi處理器的基礎(chǔ)上,外加2個(gè)通道的hdlc控制器、i2c總線和2個(gè)通道串行接口、1個(gè)mac控制模塊以及統(tǒng)一的mii界面,提供10mhz/100mhz以太網(wǎng)的自適應(yīng)連接。對(duì)于網(wǎng)絡(luò)產(chǎn)品的設(shè)計(jì)提供了靈活的支持。 在軟件開發(fā)設(shè)計(jì)方面,netmcu使用的是arm7tdmi處理器內(nèi)核,所以支持arm的開發(fā)工具(如windriver的tornado、arm的armstd251等)都對(duì)其適用,方便用戶開發(fā)設(shè)計(jì),最大限度地獲得支持資源。 1.1 s3c4510b中的hdlc模塊 s3c4510b的hdlc(high-level digital link controller)控制器擁有2個(gè)串行通道。hdlc模塊支持符合sdlc標(biāo)準(zhǔn)和hdlc標(biāo)準(zhǔn)的cpu/數(shù)據(jù)通道接口,包含2個(gè)dma引警;支持使用對(duì)應(yīng)幀的緩沖區(qū)描述符結(jié)構(gòu),而且可以靈活地配置通道物理編碼模式(nrz,fm,man),選擇本地或者外部時(shí)鐘;支持通過鎖相環(huán)路從接收數(shù)據(jù)流提取時(shí)鐘信號(hào)。使用的hdlc的幀結(jié)構(gòu)如表1所列。
表1 開始標(biāo)志 地址域 控制域 信息域 幀校驗(yàn) 結(jié)束標(biāo)志 7eh 2/4 bytes 1byte 8 bit/byte 16 bit crc 7eh 圖1是s3c4510b hdlc控制器功能結(jié)構(gòu),主要包括總線仲裁單元、dma控制器、8字的發(fā)送接收(tx/rx)fifo、狀態(tài)/控制寄存器和物理收發(fā)器?偩總裁單元負(fù)責(zé)向cpu申請(qǐng)系統(tǒng)總線;dma控制器使用緩沖描述符在無cpu干預(yù)下控制數(shù)據(jù)幀的收發(fā);8字(字=32bit)fifo結(jié)構(gòu)對(duì)cpu和串行接口的數(shù)據(jù)進(jìn)行立即存儲(chǔ);物理收發(fā)器控制hdlc通道的運(yùn)行模式、編解碼等;狀態(tài)/控制寄存器是運(yùn)行的核心,程序設(shè)計(jì)人員通過設(shè)置,檢測(cè)這些寄存器控制數(shù)據(jù)的收發(fā)。 1.2 中斷模式和hdma(hdlc dma)模式 (1)中斷模式 htxfifo結(jié)構(gòu)通過把幀數(shù)據(jù)分別寫入“幀連續(xù)地址”和“幀結(jié)束地址”控制發(fā)送
熱門點(diǎn)擊
- 中國(guó)民航AFTN電報(bào)網(wǎng)網(wǎng)關(guān)系統(tǒng)的開發(fā)
- IrDA紅外通信在導(dǎo)航儀中的應(yīng)用
- 擴(kuò)頻E2無線中繼器的設(shè)計(jì)
- 基于AD8016的ADSL線路驅(qū)動(dòng)電路的設(shè)計(jì)
- 用于無線通信的CDMA/FM下變頻混頻器RF
- MHW7222A型放大器在校園CATV干線系
- IP電話及其在線纜調(diào)制解調(diào)系統(tǒng)上的應(yīng)用
- 寬動(dòng)態(tài)范圍的VGA芯片Q5500及其應(yīng)用
- 多路數(shù)據(jù)總線仿真軟件的設(shè)計(jì)
- Webchip智能Internet網(wǎng)絡(luò)接口芯
推薦技術(shù)資料
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究