- 相關(guān)推薦
三星ARM處理器S3C4510B的HDLC通道使用及編程
三星16/32位ARM處理器S3C4510B是目前在國內(nèi)應(yīng)用非常廣泛的一種性價比很高的ARM處理器,本文在介紹S3C4510B中HDLC通道結(jié)構(gòu)特點的基礎(chǔ)上,詳細說明了4510中HDLC通道在DMA收發(fā)方式下的工作過程,使用方法和編程中的一些注意事項。
S3C4510B(以下簡稱4510)是韓國三星公司開發(fā)的一款基于ARM7TDMI架構(gòu)的16/32位高性能微處理器。具用豐富的外圍接口,如以太網(wǎng),HDLC等,可靈活配置,適用于多種應(yīng)用。4510具有以下性能特點:
◆ 8K字節(jié)的內(nèi)部CACHE,也可用作內(nèi)部SRAM
◆ 兩線IIC接口,作為IIC主器件使用
◆ 以太網(wǎng)控制器
◆ 雙通道HDLC控制器
◆ 雙UART
◆ 雙GDMA通道
◆ 兩個32位定時器
◆ 18個可編程IO端口
◆ 中斷控制功能
◆ 外部SDRAM/DRAM/FLASH/ROM控制
本文主要介紹4510中HDLC通道的使用和編程方法。
HDLC協(xié)議幀結(jié)構(gòu)和特性請參閱相關(guān)書籍和4510數(shù)據(jù)手冊,這里不詳細介紹。
4510的HDLC通道結(jié)構(gòu)如附圖1所示。具有以下特點:
1. FIFO:發(fā)送和接收模塊都有32字節(jié)(8字)FIFO,提供CPU內(nèi)部總線到HDLC串行接口之間的數(shù)據(jù)緩存功能。
2. DMA:HDLC通道的發(fā)送和接收支持DMA方式。
3. 波特率產(chǎn)生:4510的HDLC通道包含一個可編程的波特率產(chǎn)生計數(shù)器,能夠產(chǎn)生各種波特率的傳輸速率。
4. DPLL:4510的HDLC通道包含一個數(shù)字鎖相環(huán)(DPLL),提供了時鐘恢復(fù)功能,可從編碼后的數(shù)據(jù)流中迅速提取出時鐘信息。
5. 編碼方式:4510的HDLC通道支持五種編碼方式,分別為NRZ,NRZI,FM0,FM1和差分曼徹斯特編碼,編碼波形請參看附圖2。
詳細的內(nèi)容請參閱4510數(shù)據(jù)手冊。
4510的HDLC通道收發(fā)可工作在CPU模式和DMA模式下,在我們的應(yīng)用和編程中使用了DMA方式,因此這里主要介紹DMA方式下的工作過程。4510的HDLC通道工作過程大致可以分為通道初始化,數(shù)據(jù)發(fā)送,數(shù)據(jù)接收三個部分。
HDLC通道初始化過程可分為七個步驟;一:通道復(fù)位,恢復(fù)其默認配置;二:通過設(shè)置工作模式寄存器(HMODE)來配置HDLC工作模式;三:通過設(shè)置控制寄存器(HCON)來控制HDLC通道的工作;四:通過設(shè)置中斷控制寄存器(HINT)來控制HDLC通道的中斷產(chǎn)生;五:設(shè)置站址寄存器(HSAR0-HSAR3)和站址屏蔽寄存器(HMASK),以完成接收操作的地址比較功能;六:建立DMA方式的發(fā)送和接收BUFFER描述符鏈表結(jié)構(gòu),并初始化DMA發(fā)送BUFFER描述符指針寄存器(HDMATxPTR)和DMA接收BUFFER描述符指針寄存器(HDMARxPTR);七:使能HDLC通道的收發(fā)功能。
HDLC通道復(fù)位可通過設(shè)置控制寄存器(HCON)前4比特來完成,請參閱4510數(shù)據(jù)手冊。
工作模式寄存器(HMODE)中的不同位定義了不同的工作模式,這里介紹較常用的幾種模式設(shè)置,詳細內(nèi)容和配置方法請參閱4510數(shù)據(jù)手冊。
1. 數(shù)據(jù)編碼方式選擇:從所支持的五種編碼方式中選擇。
2. 波特率時鐘源選擇:如果使用4510的內(nèi)部波特率產(chǎn)生器,則需要為其選擇時鐘源,同時根據(jù)不同的時鐘源配置波特率產(chǎn)生計數(shù)器(HBRGTC)產(chǎn)生需要的時鐘信號。
3. DPLL時鐘源選擇:如果使用DPLL,則需要為其選擇要跟蹤的時鐘源。
4. 發(fā)送時鐘選擇:4510的HDLC通道支持多種發(fā)送時鐘源,可通過設(shè)置HDLC通道的模式寄存器中的相應(yīng)位來選擇。
5. 接收時鐘選擇:4510的HDLC通道支持多種接收時鐘源,可通過設(shè)置HDLC通道的模式寄存器中的相應(yīng)位來選擇。
控制寄存器(HCON)控制HDLC通道工作情況,這里介紹常用的控制選項,詳細的內(nèi)容和配置方法請參閱4510數(shù)據(jù)手冊。
1. 波特率產(chǎn)生/DPLL使能:如果使用了內(nèi)部的波特率產(chǎn)生器或者DPLL,為使它們工作,需要設(shè)置HDLC通道的控制寄存器中相應(yīng)位來啟動工作。
2. 收發(fā)FIFO深度設(shè)置:當使用CPU方式進行HDLC收發(fā)時,可設(shè)置收發(fā)FIFO深度。FIFO深度可設(shè)置為8字節(jié)/32字節(jié)。當使用DMA方式時,此設(shè)置無效。
3. DMA發(fā)送停止/跳過方式設(shè)置:使用DMA方式發(fā)送時,如果當前使用的發(fā)送BUFFER描述符不屬于DMA所有,可根據(jù)此設(shè)置來停止DMA發(fā)送,或是跳到發(fā)送BUFFER描述符鏈表中的下一個描述符。
4. DMA接收停止/跳過方式設(shè)置:使用DMA方式接收時,如果當前使用的接收BUFFER描述符不屬于DMA所有,可根據(jù)此設(shè)置來停止DMA接收,或是跳到接收BUFFER描述符
【三星ARM處理器S3C4510B的HDLC通道使用及編程】相關(guān)文章:
ARM處理器的Boot與Remap03-07
32位ARM嵌入式處理器的調(diào)試技術(shù)03-20
基于ARM7核處理器VxWorks系統(tǒng)BSP設(shè)計03-19
ARM922T核ZCP320A處理器PCI總線操作12-07
基于ARM9微處理器與Linux操作系統(tǒng)的SD驅(qū)動開發(fā)03-07