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