摘要: 介紹了用CPLD輔助設(shè)計在嵌入系統(tǒng)中進(jìn)行曲MPU復(fù)雜邏輯功能設(shè)計的總體方案,給出了通過對XC95144中復(fù)用控制寄存器進(jìn)行配置以實現(xiàn)MPU復(fù)位邏輯和CPM協(xié)議切換的實現(xiàn)方案和設(shè)計要點。
關(guān)鍵詞: MPU CPM CPLD 復(fù)位邏輯性I/O口 MPC850
1 引言
近年來,微處理器(MPU)在嵌入式系統(tǒng)研發(fā)中所占地位越來越重要,很多應(yīng)用場合對MPU的處理速度、集成密度也提出了更高的要求。Power PC系列MPU是Motorola公司推出的面向嵌入式應(yīng)用的專用MPU,它在片內(nèi)集成了基于RISC體系的微處理器的內(nèi)核和支持多種通信協(xié)議的通信處理器(CPM),具有強大的通信和網(wǎng)絡(luò)協(xié)議處理能力,可廣泛應(yīng)用于通信和網(wǎng)絡(luò)產(chǎn)品中。CPLD(Complex Programmable Logic Device)是一種復(fù)雜的用戶可編程邏輯器件,和FPGA相比,由于采用連續(xù)連接結(jié)構(gòu),易于預(yù)測延時,從而使電路仿真更加準(zhǔn)確。近年來,由于采用先進(jìn)的集成工藝和大批量生產(chǎn),CPLD器件成本不斷下降,集成密度、速度和性能大幅度提高,一個芯片就可以實現(xiàn)一個復(fù)雜的數(shù)字電路系統(tǒng),再加上使用權(quán)方便的開發(fā)工具,因此使用權(quán)CPLD器件可以極大地縮短產(chǎn)品開發(fā)周期,給設(shè)計修改帶來很大方便。
嵌入式系統(tǒng)常用MPU和CPLD聯(lián)合設(shè)計。現(xiàn)以PowerPC系列MPC850和 Xilinx 公司的XC95144XL為例來介紹實現(xiàn)MPU功能的CPLD輔助設(shè)計方法。實際上,MPC850的外部復(fù)位和通信模塊(CPM)的設(shè)計在整個系統(tǒng)設(shè)計中占用重要地位,也是調(diào)試硬件中容易出問題的環(huán)節(jié)。本文將對MPC850的外部復(fù)位邏輯和通信模塊的復(fù)用作一探討,并給出了這兩部分的CPLD邏輯實現(xiàn)方法。
2 MPC850的復(fù)位邏輯和CPLD實現(xiàn)
2.1 復(fù)位邏輯
MPC850內(nèi)部的復(fù)位時鐘具有復(fù)位控制邏輯,以及決定復(fù)位起因、同步和相應(yīng)復(fù)位的邏輯模塊。概括起來,MPC850總共具有以下復(fù)位源:
*上電復(fù)位;
*外部硬復(fù)位;
*內(nèi)部硬復(fù)位:包括失鎖、軟件看門狗復(fù)位、校驗停復(fù)位、調(diào)試口硬復(fù)位;
*JTAG復(fù)位;
*外部軟復(fù)位;
*內(nèi)部軟件復(fù)位:指調(diào)試口軟復(fù)位。
設(shè)計中需要用戶參與的主要是上復(fù)位和外部硬復(fù)位。其中上電復(fù)位的復(fù)位過程如下:
(1) 產(chǎn)生上電復(fù)位信號PORESET
(2) PORESET有效,CPU配置SCCR寄存器,PORESET保持時間至少在3μs以上。
(3) PORESET無效后,CPU采用MODCK(時鐘模式配置)并鎖存,同時初始化時鐘。
(4) CPU驅(qū)動HRESET和SRESET信號512個時鐘周期,512周期結(jié)束后,如果RSCONF信號接低,則CPU從數(shù)據(jù)總線上采樣配置數(shù)據(jù),并將內(nèi)部產(chǎn)生 的HRESET和SRESET信號置為無效;如果RSCONF信號接高,則CPU按內(nèi)部缺省值進(jìn)行配置。
(5) 計數(shù)器計數(shù)16個時鐘周期,然后采樣外部硬復(fù)位信號和外部軟復(fù)位信號,如果存在職效的外部硬復(fù)位信號或軟復(fù)位信號,則計數(shù)器清0,并重新計數(shù),否則跳出,執(zhí)行正常操作。
系統(tǒng)中硬件復(fù)位主要用于在CPU感知外部硬復(fù)位信號有效后,產(chǎn)生內(nèi)部硬復(fù)位信號,然后按照上述上電復(fù)位步驟從第4步開始執(zhí)行。其時序圖如圖1所示。
可見,相比一些常用的MPU器件,MPC850的復(fù)位邏輯比較復(fù)雜,而且對復(fù)位控制的時序有嚴(yán)格的要求。通常的設(shè)計需要較多的外部器件來實現(xiàn)邏輯控制,而采用一片CPLD則只需編寫簡單的代碼就可以了,且易于調(diào)度。本應(yīng)用于設(shè)計采用 Xilinx 公司的XC95144XL進(jìn)行邏輯設(shè)計。
2.2 基于CPLD的實現(xiàn)方法。
設(shè)計時,將MPC850的復(fù)位信號(上電復(fù)位poreset、硬復(fù)位hreset、軟復(fù)位sreset)連接到XC95144XL的連接方法如圖2所示。
該方案中CPLD的上電復(fù)位設(shè)計過程如下:
(1) 系統(tǒng)上電后,上電復(fù)位poreset由XC95144XL產(chǎn)生,為了使MPC850得到可靠的復(fù)位,這個延遲時間通常比要求的3μs要大一些。MODCK配置可一直固定。
(2) poreset 信號無效后(為高電平),MPC850會采樣MODCK并驅(qū)動HRESET信號512個時鐘周期。需要注意的是這個時間由MPC850控制的,CPLD不作邏輯實現(xiàn)。然后MPC850開始采樣總線上的32bit配置數(shù)據(jù)。這時不能馬上驅(qū)動總線數(shù)據(jù)線,應(yīng)延遲若干時鐘周期后驅(qū)動,經(jīng)應(yīng)用證明延遲8個時鐘周期以上可以滿足要求。
(3) 驅(qū)動總線配置數(shù)據(jù)16個時鐘周期后把總線置為高阻態(tài),上電復(fù)位結(jié)束。
手動復(fù)位的邏輯實現(xiàn)主要考慮的是對按鍵的復(fù)位作抗抖動處理,以防止多次短暫接觸對系統(tǒng)造成反復(fù)復(fù)位,可以在代碼中加入一個RS觸發(fā)順來實現(xiàn)抗抖。
本設(shè)計采用VHDL語言實現(xiàn),限于篇幅代碼省略。需要注意的是:在總線數(shù)據(jù)配置時,不能采用順序執(zhí)行語句,而只有應(yīng)用并發(fā)語句執(zhí)行才能得到正確的配置。如:
d <="ZZZZZZZZZZZZZZZZ"when flag=true else"0000011010100010";
--512個時鐘周期后,再等待8個時鐘周期將初始配置字推至數(shù)據(jù)線
--采用條件代入語句的并發(fā)描述
而如果采用順序描述語句:
if flag =true then
d <="ZZZZZZZZZZZZZZZZ "
else
d <="0000011010100010";
則配置字將得不到正確讀取。這一點需要特別注意。
3 MPC850通信的CPLD實現(xiàn)
3.1 MPC850 CPM的應(yīng)用
MPC850的CPM模塊支持7個串行通道,其中包括:2個串行管理控制器SMC(支持通用異步收發(fā)UART、透明模式和通用電路接口)、2個串行通信控制器SCC(支持Ethernet、ATM、HDLC和其它多種通信協(xié)議)、1個USB信道、1個I2C端口和1個串行外圍接口SPI。
在實際應(yīng)用中,可通過設(shè)置模式寄存器的相關(guān)控制位來決定各個通道應(yīng)該采用的協(xié)議。各信道的接口通過MPC850的并行I/O口PA、PB和PC與外設(shè)進(jìn)行連接,這些I/O口對應(yīng)的協(xié)議需要對端口的引腳配置寄存器(pin assignment register)和數(shù)據(jù)方向寄存器(data direction register)進(jìn)行配置,但由于端口數(shù)量的限制,所有的通信協(xié)議不可能被同時支持,因此受I/O口限制,若干協(xié)議不能同時被使用。故此,在使用這些I/O口,就存在復(fù)用和互斥的問題。表1給出了各I/O口和通信協(xié)議的對應(yīng)關(guān)系。
表1 MPC850端口復(fù)用一覽表
3.2 復(fù)用邏輯的CPLD實現(xiàn)
將MPC850需要復(fù)用的I/O端口全部連接到XC95144XL的可編程I/O口,然后將外部連接的各通信端口(RS232、以太網(wǎng)1、以太網(wǎng)2等)也連接到XC95144XL的可編程I/O口。這樣,當(dāng)MPC850需要切換到某個外部端口時,除設(shè)置內(nèi)部相關(guān)寄存器外,通過數(shù)據(jù)和地址線控制XC95144XL內(nèi)部的復(fù)位控制寄存器就可以完成I/O口的切換。余下的工作就是了解復(fù)用控制寄存器的結(jié)構(gòu)和CPLD的讀寫時序。這樣,通過對各位的設(shè)置就能開關(guān)相應(yīng)I/O口。圖3和圖4分別是CPLD的讀寫時序和復(fù)用控制寄存器的位定義結(jié)構(gòu)圖。
4 總結(jié)
本文介紹了MPU和CPLD在嵌入式設(shè)計中的綜合應(yīng)用方法,同時提供了一種簡單的實現(xiàn)方案,隨著VLSI集成度和功能的不斷增強,MPU和CPLD的結(jié)合應(yīng)用遠(yuǎn)不止文中提到的這些。隨著先進(jìn)集成工藝和大批量生產(chǎn)的出現(xiàn),CPLD器件的成本也不斷下降,其集成密度、速度和性能也將大幅提高。另外,其CPLD器件的設(shè)計靈活性也使得它能夠完成許多更多復(fù)雜的在片設(shè)計,從而極大地擴展了MPU的功能,增強了系統(tǒng)的易裁減特性,而這切都無穎將充分提升設(shè)計人員的創(chuàng)造空間。