新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MPC850中復(fù)位邏輯和CPM協(xié)議的CPLD實現(xiàn)

MPC850中復(fù)位邏輯和CPM協(xié)議的CPLD實現(xiàn)

作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
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)確。近年來,由于采用先進的集成工藝和大批量生產(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è)計?,F(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)部缺省值進行配置。
(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進行邏輯設(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è)進行連接,這些I/O口對應(yīng)的協(xié)議需要對端口的引腳配置寄存器(pin assignment register)和數(shù)據(jù)方向寄存器(data direction register)進行配置,但由于端口數(shù)量的限制,所有的通信協(xié)議不可能被同時支持,因此受I/O口限制,若干協(xié)議不能同時被使用。故此,在使用這些I/O口,就存在復(fù)用和互斥的問題。表1給出了各I/O口和通信協(xié)議的對應(yīng)關(guān)系。

表1 MPC850端口復(fù)用一覽表
復(fù)用I/O 協(xié)議1(括號內(nèi)對應(yīng)該協(xié)議的功能引腳) 協(xié)議2 協(xié)議3
PA8 串口2(SMRXD2) RS485(SMRXD2) ISDN(L1TXDA)
PA9 串口2(SMTXD2) RS485(SMTXD2) ISDN(L1RXDA)
PA7 以太網(wǎng)2(RCLK1) ISDN(L1RCLKA)  
PA5 以太網(wǎng)2(TCLK3) HDLC(CLK3) ISDN(L1TCLKA)
PB30 以太網(wǎng)2(TXD3) SPI(CLK) HDLC(TXD3)
PB29 以太網(wǎng)2(RXD3) SPI(OSI) HDLC(RXD3)
PB27 I2C(SDA) ATM(PHYCS)  
PB26 I2C(SCL) ATM(RST)  
PC13 以太網(wǎng)2(RTS3) TDMA(L1ST7) ATM(PHYRD)
PC11 USB(RXP) ATM(PHYAD7)  
PC10 USB(RXN) ATM(PHYAD3)  
PC7 USB(TXP) ATM(PHYAD2)  
PC6 USB(TXN) ATM(PHYAD6)  
PC5 以太網(wǎng)2(COL3) ISDN(L1TSNCA) HDLC(CTS3)
PC4 以太網(wǎng)2(CD3) ISDN(L1RSNCA) HDLC(CD3)

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)不止文中提到的這些。隨著先進集成工藝和大批量生產(chǎn)的出現(xiàn),CPLD器件的成本也不斷下降,其集成密度、速度和性能也將大幅提高。另外,其CPLD器件的設(shè)計靈活性也使得它能夠完成許多更多復(fù)雜的在片設(shè)計,從而極大地擴展了MPU的功能,增強了系統(tǒng)的易裁減特性,而這切都無穎將充分提升設(shè)計人員的創(chuàng)造空間。


評論


技術(shù)專區(qū)

關(guān)閉