MPC850中復(fù)位邏輯和CPM協(xié)議切換的CPLD實現(xiàn)
1 引言
本文引用地址:http://www.ex-cimer.com/article/21153.htm近年來,微處理器(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)造空間。
評論