新聞中心

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

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

作者: 時間:2016-12-02 來源:網(wǎng)絡 收藏
1 引言

近年來,微處理器(MPU)在嵌入式系統(tǒng)研發(fā)中所占地位越來越重要,很多應用場合對MPU的處理速度、集成密度也提出了更高的要求。Power PC系列MPU是Motorola公司推出的面向嵌入式應用的專用MPU,它在片內(nèi)集成了基于RISC體系的微處理器的內(nèi)核和支持多種通信協(xié)議的通信處理器(CPM),具有強大的通信和網(wǎng)絡協(xié)議處理能力,可廣泛應用于通信和網(wǎng)絡產(chǎn)品中。CPLD(Complex Programmable Logic Device)是一種復雜的用戶可編程邏輯器件,和FPGA相比,由于采用連續(xù)連接結(jié)構(gòu),易于預測延時,從而使電路仿真更加準確。近年來,由于采用先進的集成工藝和大批量生產(chǎn),CPLD器件成本不斷下降,集成密度、速度和性能大幅度提高,一個芯片就可以實現(xiàn)一個復雜的數(shù)字電路系統(tǒng),再加上使用權(quán)方便的開發(fā)工具,因此使用權(quán)CPLD器件可以極大地縮短產(chǎn)品開發(fā)周期,給設計修改帶來很大方便。

嵌入式系統(tǒng)常用MPU和CPLD聯(lián)合設計?,F(xiàn)以PowerPC系列MPC850和Xilinx公司的XC95144XL為例來介紹實現(xiàn)MPU功能的CPLD輔助設計方法。實際上,MPC850的外部復位和通信模塊(CPM)的設計在整個系統(tǒng)設計中占用重要地位,也是調(diào)試硬件中最容易出問題的環(huán)節(jié)。本文將對MPC850的外部復位邏輯和通信模塊的復用作一探討,并給出了這兩部分的CPLD邏輯實現(xiàn)方法。

2 MPC850的復位邏輯和CPLD實現(xiàn)

2.1 復位邏輯

MPC850內(nèi)部的復位時鐘具有復位控制邏輯,以及決定復位起因、同步和相應復位的邏輯模塊。概括起來,MPC850總共具有以下復位源:

*上電復位;
*外部硬復位;
*內(nèi)部硬復位:包括失鎖、軟件看門狗復位、校驗停復位、調(diào)試口硬復位;
*JTAG復位;
*外部軟復位;
*內(nèi)部軟件復位:指調(diào)試口軟復位。

設計中需要用戶參與的主要是上復位和外部硬復位。其中上電復位的復位過程如下:

(1) 產(chǎn)生上電復位信號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個時鐘周期,然后采樣外部硬復位信號和外部軟復位信號,如果存在職效的外部硬復位信號或軟復位信號,則計數(shù)器清0,并重新計數(shù),否則跳出,執(zhí)行正常操作。

系統(tǒng)中硬件復位主要用于在CPU感知外部硬復位信號有效后,產(chǎn)生內(nèi)部硬復位信號,然后按照上述上電復位步驟從第4步開始執(zhí)行。其時序圖如圖1所示。

可見,相比一些常用的MPU器件,MPC850的復位邏輯比較復雜,而且對復位控制的時序有嚴格的要求。通常的設計需要較多的外部器件來實現(xiàn)邏輯控制,而采用一片CPLD則只需編寫簡單的代碼就可以了,且易于調(diào)度。本應用于設計采用Xilinx公司的XC95144XL進行邏輯設計。

2.2 基于CPLD的實現(xiàn)方法。

設計時,將MPC850的復位信號(上電復位poreset、硬復位hreset、軟復位sreset)連接到XC95144XL的連接方法如圖2所示。
該方案中CPLD的上電復位設計過程如下:

(1) 系統(tǒng)上電后,上電復位poreset由XC95144XL產(chǎn)生,為了使MPC850得到可靠的復位,這個延遲時間通常比要求的3μs要大一些。MODCK配置可一直固定。

(2) poreset 信號無效后(為高電平),MPC850會采樣MODCK并驅(qū)動HRESET信號512個時鐘周期。需要注意的是這個時間由MPC850控制的,CPLD不作邏輯實現(xiàn)。然后MPC850開始采樣總線上的32bit配置數(shù)據(jù)。這時不能馬上驅(qū)動總線數(shù)據(jù)線,應延遲若干時鐘周期后驅(qū)動,經(jīng)應用證明延遲8個時鐘周期以上可以滿足要求。

(3) 驅(qū)動總線配置數(shù)據(jù)16個時鐘周期后把總線置為高阻態(tài),上電復位結(jié)束。

手動復位的邏輯實現(xiàn)主要考慮的是對按鍵的復位作抗抖動處理,以防止多次短暫接觸對系統(tǒng)造成反復復位,可以在代碼中加入一個RS觸發(fā)順來實現(xiàn)抗抖。

本設計采用VHDL語言實現(xiàn),限于篇幅代碼省略。需要注意的是:在總線數(shù)據(jù)配置時,不能采用順序執(zhí)行語句,而只有應用并發(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的應用

MPC850的CPM模塊支持7個串行通道,其中包括:2個串行管理控制器SMC(支持通用異步收發(fā)UART、透明模式和通用電路接口)、2個串行通信控制器SCC(支持Ethernet、ATM、HDLC和其它多種通信協(xié)議)、1個USB信道、1個I2C端口和1個串行外圍接口SPI。

在實際應用中,可通過設置模式寄存器的相關(guān)控制位來決定各個通道應該采用的協(xié)議。各信道的接口通過MPC850的并行I/O口PA、PB和PC與外設進行連接,這些I/O口對應的協(xié)議需要對端口的引腳配置寄存器(pin assignment register)和數(shù)據(jù)方向寄存器(data direction register)進行配置,但由于端口數(shù)量的限制,所有的通信協(xié)議不可能被同時支持,因此受I/O口限制,若干協(xié)議不能同時被使用。故此,在使用這些I/O口,就存在復用和互斥的問題。表1給出了各I/O口和通信協(xié)議的對應關(guān)系。

表1 MPC850端口復用一覽表
復用I/O 協(xié)議1(括號內(nèi)對應該協(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 復用邏輯的CPLD實現(xiàn)

將MPC850需要復用的I/O端口全部連接到XC95144XL的可編程I/O口,然后將外部連接的各通信端口(RS232、以太網(wǎng)1、以太網(wǎng)2等)也連接到XC95144XL的可編程I/O口。這樣,當MPC850需要切換到某個外部端口時,除設置內(nèi)部相關(guān)寄存器外,通過數(shù)據(jù)和地址線控制XC95144XL內(nèi)部的復位控制寄存器就可以完成I/O口的切換。余下的工作就是了解復用控制寄存器的結(jié)構(gòu)和CPLD的讀寫時序。這樣,通過對各位的設置就能開關(guān)相應I/O口。圖3和圖4分別是CPLD的讀寫時序和復用控制寄存器的位定義結(jié)構(gòu)圖。

4 總結(jié)

本文介紹了MPU和CPLD在嵌入式設計中的綜合應用方法,同時提供了一種簡單的實現(xiàn)方案,隨著VLSI集成度和功能的不斷增強,MPU和CPLD的結(jié)合應用遠不止文中提到的這些。隨著先進集成工藝和大批量生產(chǎn)的出現(xiàn),CPLD器件的成本也不斷下降,其集成密度、速度和性能也將大幅提高。另外,其CPLD器件的設計靈活性也使得它能夠完成許多更多復雜的在片設計,從而極大地擴展了MPU的功能,增強了系統(tǒng)的易裁減特性,而這切都無穎將充分提升設計人員的創(chuàng)造空間。


評論


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

關(guān)閉