引言
速度測(cè)量是控制工程的基本問(wèn)題之一。在許多情況下,測(cè)速信號(hào)需要遠(yuǎn)距離傳送。實(shí)現(xiàn)這個(gè)問(wèn)題的一個(gè)主要方法是使用SoC(片上系統(tǒng))芯片。它所帶的豐富外設(shè)改變了關(guān)于硬件和軟件的觀念。搭建硬件系統(tǒng)變?yōu)閷?duì)硬件結(jié)構(gòu)的理解掌握,軟件的編程也從算法編制為主變?yōu)椴考O(shè)置為主,具有簡(jiǎn)捷、完整的特點(diǎn),體現(xiàn)了芯片的技術(shù)優(yōu)勢(shì)。SoC類(lèi)的TMS320LF2407DSP芯片在測(cè)速和遠(yuǎn)程傳送應(yīng)用中的簡(jiǎn)捷一體化設(shè)計(jì)也體現(xiàn)了這一點(diǎn)。
1 相關(guān)系統(tǒng)結(jié)構(gòu)
TMS320LF2407所帶有的事件管理器和CAN控制器模塊為測(cè)速和遠(yuǎn)程傳送提供了便利。 TMS320LF2407有2個(gè)事件管理器EVA和EVB,各有3個(gè)捕獲單元。對(duì)應(yīng)6個(gè)捕獲輸入引腳CAPX(對(duì)EVA,X=1,2,3;對(duì)EVB,X=4,5,6)。6個(gè)捕獲輸入引腳分別與QEPl/IOPA3、QEP2/IOPA4、IOPA5、QEP3/IOPE37、QEP4/IOPFO和IOPFl 共用。當(dāng)捕獲輸入引腳CAPX上檢測(cè)到所選的跳變時(shí),所選的GP定時(shí)器的計(jì)數(shù)值被捕獲并存入到一個(gè)2級(jí)深的FIFO堆棧中。
TMS320LF2407的CAN控制器模塊包括有郵箱和相應(yīng)的控制/狀態(tài)寄存器。共有6個(gè)郵箱:2個(gè)接收郵箱(MBOX0、1),2個(gè)發(fā)送郵箱(MBOX4、5),2個(gè)可配置為接收或發(fā)送郵箱(MBOX2、3)。TM$320LF2407的CAN控制器模塊完全支持CAN2.0B協(xié)議。
通常情況下,測(cè)速傳感器系統(tǒng)輸出的是數(shù)字測(cè)速脈沖信號(hào)。因此,可把這個(gè)加到TMS320LF2407DSP芯片捕獲引腳上。利用TMS320LF2407芯片的捕獲單元測(cè)量輸入脈沖的周期,再由內(nèi)置的CAN總線控制器單元發(fā)出CAN周期信號(hào),實(shí)現(xiàn)測(cè)速和遠(yuǎn)程傳送一體化。
2 系統(tǒng)配置
2.1 捕獲單元及相應(yīng)定時(shí)器的配置
TM$320LF2407捕獲單元的工作原理是:以輸入脈沖上升沿、下降沿或上升沿下降沿為界,由相應(yīng)的定時(shí)器計(jì)數(shù)來(lái)度量周期,計(jì)數(shù)值被捕獲送入相應(yīng)的一個(gè)2級(jí)深的捕獲堆棧FIF0中。因此,涉及到捕獲和定時(shí)器兩部分的配置操作。需要配置的捕獲操作有:在I/O口復(fù)用控制寄存器MCRx(x=A、B或c)中把相應(yīng)引腳配置為捕獲輸入;在捕獲控制寄存器CAPCONA/B中選擇(使能)捕獲單元、選擇(使能)相應(yīng)的定時(shí)器和邊沿選擇(上升沿、下降沿或上升沿下降沿);在中斷標(biāo)志寄存器EVA/BIFRX和中斷屏蔽寄存器EVA/BIMRX中設(shè)置中斷控制情況。需要配置定時(shí)器的操作有:對(duì)單個(gè)通用定時(shí)器TXCNT清零;在全局通用定時(shí)器控制寄存器GPTCONA/B中設(shè)置相應(yīng)定時(shí)器的操作及計(jì)數(shù)方向;在單個(gè)通用定時(shí)器周期控制寄存器TXPR中設(shè)置比較周期;在單個(gè)通用定時(shí)器控制寄存器TXCON中設(shè)置計(jì)數(shù)操作模式。
周期控制寄存器TXPR中設(shè)置的比較周期應(yīng)大于輸入脈沖信號(hào)的周期。在不知道輸入脈沖信號(hào)周期的情況下,應(yīng)設(shè)置為最大值。當(dāng)度量周期超過(guò)最大捕獲時(shí)間時(shí),用定時(shí)器溢出的方法再加軟件計(jì)數(shù)解決。
2.2 捕獲周期的取出和傳送
存放于捕獲堆棧FIFO的捕獲周期的取出有中斷和查詢兩種方法。捕獲單元所在的事件管理器的中斷延時(shí)時(shí)間為20個(gè)CPu周期(典型),或25個(gè)CPU周期(最小保護(hù)),或8個(gè)cPU周期(單個(gè)中斷),或l6個(gè)CPU周期(不考慮存儲(chǔ)器空間)。在具體設(shè)計(jì)中,中斷延時(shí)時(shí)間被設(shè)為某一定值。在通常中斷處理程序很短的情況下,中斷時(shí)間主要由中斷延時(shí)時(shí)間決定。為了系統(tǒng)的擴(kuò)展,即使是單個(gè)外設(shè),也還是以采用中斷方法為宜,而不是查詢方法。
2.3 CAN控制器模塊和位定時(shí)器配置
CAN控制器模塊的配置包括初始化郵箱、位定時(shí)器設(shè)置和數(shù)據(jù)收發(fā)。有關(guān)內(nèi)容參見(jiàn)文獻(xiàn)[1]。這里介紹一下位定時(shí)器的設(shè)置。
位定時(shí)器的設(shè)置決定總線傳輸信號(hào)的波特率,是CAN控制器模塊的核心配置問(wèn)題。TMS320LF2407有兩個(gè)位控制寄存器BCRl和BCR2。它們必須在CAN控制器處于復(fù)位模式下(即CCR=1)才能被配置。位控制寄存器BCR2包括波特率預(yù)分頻位BRP[7-0],用來(lái)確定CAN控制器的時(shí)間片TQ,作為位控制的基準(zhǔn)時(shí)間。位控制寄存器BCR2包括同步跳轉(zhuǎn)寬度選擇位SJW[1-0]、采樣次數(shù)選擇位SAM[7]、包含傳播延時(shí)時(shí)間段(PROG SEG)和相位延時(shí)時(shí)間段1(PHASE SEGl)的時(shí)間段1 TSEGl[3-0]、決定相位延時(shí)時(shí)間段2(PHASE SEG2)的時(shí)間段2 TSEG2[2-0]。
3 設(shè)計(jì)實(shí)例
本例的基本設(shè)置是選定捕獲單元4(CAP4)對(duì)輸入脈沖寬度進(jìn)行捕獲,事件管理器EVB的通用定時(shí)器3對(duì)脈沖進(jìn)行計(jì)數(shù)。捕獲計(jì)數(shù)值從FIFO堆棧取出送到臨時(shí)寄存器CAP4TEMP,以便于擴(kuò)展。再?gòu)腃AP4TEMP送到3號(hào)郵箱經(jīng)CANTX/IOPC6和CANRX/IOPC7發(fā)送,如圖1所示。
3.1 捕獲單元為中斷方式而CAN控制器為查詢方式
首先進(jìn)行系統(tǒng)初始化,包括關(guān)中斷、清標(biāo)志位、系統(tǒng)時(shí)鐘20MHz使能包含有捕獲單元的第4級(jí)中斷INT4,再進(jìn)行捕獲單元初始化和CAN控制器初始化。有關(guān)內(nèi)容前已敘述。由于捕獲單元處于中斷方式,從捕獲堆棧FIFO的取捕獲周期值的操作在捕獲單元的中斷處理程序中進(jìn)行;而CAN控制器處于查詢方式,要在主程序中循環(huán)檢查捕獲標(biāo)志。確認(rèn)捕獲后,從暫存寄存器CAP4TEMP中取出捕獲周期值送到郵箱3。值得一提的是,由于捕獲周期值為1 6位數(shù)據(jù),故需要傳送的數(shù)據(jù)是2字節(jié)。因此發(fā)送控制器MSGCTRL3的DL=2。這種情況的程序流程如圖2所示。
3.2捕獲單元中斷處理包括CAN控制器的信息發(fā)送
如前所述,當(dāng)CAN控制器處于查詢方式時(shí),CAN控制器的操作程序很復(fù)雜,又位于主程序,不利于主程序的擴(kuò)展和外設(shè)的增加;因此可以把CAN控制器信息發(fā)送設(shè)置于捕獲單元中斷處理中,使主程序變得十分簡(jiǎn)單。在這種情況下,捕獲單元中斷處理程序同時(shí)包括捕獲周期取出和CAN信息發(fā)送。由于減少了判斷和循環(huán),CAN信息發(fā)送變得簡(jiǎn)單。捕獲單元中斷處理程序如下:
CAP4_ISR
LDP #DP EVB
LACL CAP4FIFO ;取捕獲堆棧值
LDP DP_USER
SACL CAP4TEMP ;捕獲值送入臨時(shí)寄存器
LDP #DP EVB
SPLK #0,T3CNT ;清T3計(jì)數(shù)值,使其重新計(jì)數(shù)
LDP #DP_CAN
SPLK #0000H,MDER ;郵箱不使能
SPLK #0100H,MCR ;CDR=I,數(shù)據(jù)改變請(qǐng)求
LDP #5
LACL CAP4TEMP ;取捕獲值
LDP #DP_CAN2
SACL MBX3A ;把捕獲值移入到郵箱3
LDP #DP_CAN
SPLK #0880H,MCR ;DBO=1,CDR=0,ABO=1,STM=0
SPLK #08H,MDER ;MD3=0,ME3=1,郵箱3發(fā)送使能
LDP #DP CAN
SPLK #0020H,TCR ;郵箱3發(fā)送請(qǐng)求
W_TA3 LDP #DP_CAN
BIT TCR,2 ;郵箱3發(fā)送應(yīng)答TA3(位13)=1
BCND W_TA3, NTC ;等待發(fā)送應(yīng)答
LDP #DP_CAN
SPLK #2000h, TCR ;發(fā)送應(yīng)答TA3寫(xiě)1復(fù)位
CLRC INTM ;開(kāi)中斷
RET
4 結(jié)論
分析和設(shè)計(jì)表明,利用SoC芯片類(lèi)的TMS320LF407特點(diǎn),適當(dāng)配置相應(yīng)的單元,就會(huì)簡(jiǎn)捷、有效地實(shí)現(xiàn)速度更快的控制功能,體現(xiàn)了控制功能,體現(xiàn)了控制實(shí)現(xiàn)方法的必然發(fā)展趨勢(shì)。調(diào)試應(yīng)用說(shuō)明,該方法正確、有效。