MPC860的HDLC通道驅動(dòng)程序的設計與實(shí)現
3 驅動(dòng)程序的設計思想及其實(shí)現
這里選擇VxWorks作為本CPU板的操作系統。VxWorks是美國風(fēng)河系統公司推出的一種高性能、可裁減的實(shí)時(shí)嵌入式操作系統,以其良好的可靠性和卓越的實(shí)時(shí)性被廣泛應用于通信、軍事、航天等領(lǐng)域。因此,程序的設計必須按照這個(gè)操作系統的結構來(lái)構建。本文的主要目的是將MPC860處理器的一個(gè)SCC通道配置成為HDLC模式,以支持VxWorks操作系統下的HDLC通信,所以程序的設計主要圍繞這個(gè)目的進(jìn)行,在此并沒(méi)有按照傳統驅動(dòng)的模式構建驅動(dòng)程序,而是直接對硬件進(jìn)行操作。首先設置通道參數,將其配置成HDLC模式,然后設計基本功能函數。當驅動(dòng)程序運行時(shí),首先要進(jìn)行SCC通道的初始化以及存儲區的初始化,然后才開(kāi)始執行收發(fā)功能,在這當中要加上中斷控制。按照這個(gè)程序的基本流程,具體的實(shí)現分為下面幾步(在本設計中將SCC2配置成HDLC模式)。本文引用地址:http://dyxdggzs.com/article/202570.htm
3.1 定義參數RAM
參數RAM主要包括通道參數RAM和通道協(xié)議參數RAM兩部分,SCC通道的主要參數都在這個(gè)里面配置。它們包含CPM RISC用來(lái)正確操作SCC通道的特定協(xié)議所用的信息。
3.2 初始化SCC2
(1)將MPC860的PA12、PA13引腳作為SCC2的收發(fā)引腳。
(2)MPC860有四個(gè)BGR和八個(gè)外部時(shí)鐘引腳,將SCC的收發(fā)時(shí)鐘分別配置成內部時(shí)鐘和外部時(shí)鐘。
(3)將SCC2配置為NMSI模式。
(4)初始化SDCR寄存器,給予SDMA一個(gè)仲裁ID以提供U總線(xiàn)上的優(yōu)先級。
(5)初始化SCC2的參數RAM(這步對所有的協(xié)議都是通用的):
?、僭O置Rx/TxBD 表的基址相對于雙端口RAM的偏移量;
?、谠O置收發(fā)緩沖區描述符表基址相對于IMMR寄存器中值的偏移量;
?、墼O置Rx/Tx 的函數代碼;
?、茉贛RBLR中設置接收緩存的最大空間。
(6)針對SCC2的HDLC模式進(jìn)行初始化;
?、偻ㄟ^(guò)C_MASK和C_PRES 設置CCITT-CRC;
?、趯PM維護的五個(gè)計數器DISFC、CRCEC、 ABTSC、 NMARC和RETRC清零;
?、墼贛FLR中定義最大幀長(cháng)度,通常定義為0x0100,表示最大幀長(cháng)度為256字節;
?、茉赗FTHR中定義接收到多少個(gè)HDLC幀時(shí)產(chǎn)生一個(gè)中斷申請,當將RFTHR置位0x0001時(shí),表示每接收到一個(gè)幀產(chǎn)生一個(gè)中斷申請;
?、菰O置接收地址,hmask用來(lái)定義地址掩碼,當hmsk=0x0000時(shí),表示接收所有幀。
評論