DSP與CAN總線的測速和遠程傳送一體化
發(fā)布時間:2008/5/26 0:00:00 訪問次數(shù):971
    
    
    速度測量是控制工程的基本問題之一。在許多情況下,測速信號需要遠距離傳送。實現(xiàn)這個問題的一個主要方法是使用soc(片上系統(tǒng))芯片。它所帶的豐富外設(shè)改變了關(guān)于硬件和軟件的觀念。搭建硬件系統(tǒng)變?yōu)閷τ布Y(jié)構(gòu)的理解掌握,軟件的編程也從算法編制為主變?yōu)椴考O(shè)置為主,具有簡捷、完整的特點,體現(xiàn)了芯片的技術(shù)優(yōu)勢。soc類的tms320lf2407dsp芯片在測速和遠程傳送應用中的簡捷一體化設(shè)計也體現(xiàn)了這一點。
    1 相關(guān)系統(tǒng)結(jié)構(gòu)
    tms320lf2407所帶有的事件管理器和can控制器模塊為測速和遠程傳送提供了便利。 tms320lf2407有2個事件管理器eva和evb,各有3個捕獲單元。對應6個捕獲輸入引腳capx(對eva,x=1,2,3;對evb,x=4,5,6)。6個捕獲輸入引腳分別與qepl/iopa3、qep2/iopa4、iopa5、qep3/iope37、qep4/iopfo和iopfl 共用。當捕獲輸入引腳capx上檢測到所選的跳變時,所選的gp定時器的計數(shù)值被捕獲并存入到一個2級深的fifo堆棧中。
    tms320lf2407的can控制器模塊包括有郵箱和相應的控制/狀態(tài)寄存器。共有6個郵箱:2個接收郵箱(mbox0、1),2個發(fā)送郵箱(mbox4、5),2個可配置為接收或發(fā)送郵箱(mbox2、3)。tm$320lf2407的can控制器模塊完全支持can2.0b協(xié)議。
    通常情況下,測速傳感器系統(tǒng)輸出的是數(shù)字測速脈沖信號。因此,可把這個加到tms320lf2407dsp芯片捕獲引腳上。利用tms320lf2407芯片的捕獲單元測量輸入脈沖的周期,再由內(nèi)置的can總線控制器單元發(fā)出can周期信號,實現(xiàn)測速和遠程傳送一體化。
    2 系統(tǒng)配置
    2.1 捕獲單元及相應定時器的配置
    tm$320lf2407捕獲單元的工作原理是:以輸入脈沖上升沿、下降沿或上升沿下降沿為界,由相應的定時器計數(shù)來度量周期,計數(shù)值被捕獲送入相應的一個2級深的捕獲堆棧fif0中。因此,涉及到捕獲和定時器兩部分的配置操作。需要配置的捕獲操作有:在i/o口復用控制寄存器mcrx(x=a、b或c)中把相應引腳配置為捕獲輸入;在捕獲控制寄存器capcona/b中選擇(使能)捕獲單元、選擇(使能)相應的定時器和邊沿選擇(上升沿、下降沿或上升沿下降沿);在中斷標志寄存器eva/bifrx和中斷屏蔽寄存器eva/bimrx中設(shè)置中斷控制情況。需要配置定時器的操作有:對單個通用定時器txcnt清零;在全局通用定時器控制寄存器gptcona/b中設(shè)置相應定時器的操作及計數(shù)方向;在單個通用定時器周期控制寄存器txpr中設(shè)置比較周期;在單個通用定時器控制寄存器txcon中設(shè)置計數(shù)操作模式。
    周期控制寄存器txpr中設(shè)置的比較周期應大于輸入脈沖信號的周期。在不知道輸入脈沖信號周期的情況下,應設(shè)置為最大值。當度量周期超過最大捕獲時間時,用定時器溢出的方法再加軟件計數(shù)解決。
    2.2 捕獲周期的取出和傳送
    存放于捕獲堆棧fifo的捕獲周期的取出有中斷和查詢兩種方法。捕獲單元所在的事件管理器的中斷延時時間為20個cpu周期(典型),或25個cpu周期(最小保護),或8個cpu周期(單個中斷),或l6個cpu周期(不考慮存儲器空間)。在具體設(shè)計中,中斷延時時間被設(shè)為某一定值。在通常中斷處理程序很短的情況下,中斷時間主要由中斷延時時間決定。為了系統(tǒng)的擴展,即使是單個外設(shè),也還是以采用中斷方法為宜,而不是查詢方法。
    2.3 can控制器模塊和位定時器配置
    can控制器模塊的配置包括初始化郵箱、位定時器設(shè)置和數(shù)據(jù)收發(fā)。有關(guān)內(nèi)容參見文獻[1]。這里介紹一下位定時器的設(shè)置。
    位定時器的設(shè)置決定總線傳輸信號的波特率,是can控制器模塊的核心配置問題。tms320lf2407有兩個位控制寄存器bcrl和bcr2。它們必須在can控制器處于復位模式下(即ccr=1)才能被配置。位控制寄存器bcr2包括波特率預分頻位brp[7-0],用來確定can控制器的時間片tq,作為位控制的基準時間。位控制寄存器bcr2包括同步跳轉(zhuǎn)寬度選擇位sjw[1-0]、采樣次數(shù)選擇位sam[7]、包含傳播延時時間段(prog seg)和相位延時時間段1(phase segl)的時間段1 tsegl[3-0]、決定相位延時時間段2(phase seg2)的時間段2 tseg2[2-0]。這樣波特率為
    3 設(shè)計實例
    本例的基本設(shè)置是選定捕獲單元4(cap4)對輸入脈沖寬度進行捕獲,事件管理器evb的通用定時器3對脈沖進行計數(shù)。捕獲計數(shù)值從fifo堆棧取出送到臨時寄存器cap4temp,以便于擴展。再從cap4temp送到3號郵箱經(jīng)cantx/iopc6和canrx/iopc7發(fā)送,如圖1所示。
    
    
    
    速度測量是控制工程的基本問題之一。在許多情況下,測速信號需要遠距離傳送。實現(xiàn)這個問題的一個主要方法是使用soc(片上系統(tǒng))芯片。它所帶的豐富外設(shè)改變了關(guān)于硬件和軟件的觀念。搭建硬件系統(tǒng)變?yōu)閷τ布Y(jié)構(gòu)的理解掌握,軟件的編程也從算法編制為主變?yōu)椴考O(shè)置為主,具有簡捷、完整的特點,體現(xiàn)了芯片的技術(shù)優(yōu)勢。soc類的tms320lf2407dsp芯片在測速和遠程傳送應用中的簡捷一體化設(shè)計也體現(xiàn)了這一點。
    1 相關(guān)系統(tǒng)結(jié)構(gòu)
    tms320lf2407所帶有的事件管理器和can控制器模塊為測速和遠程傳送提供了便利。 tms320lf2407有2個事件管理器eva和evb,各有3個捕獲單元。對應6個捕獲輸入引腳ca(對eva,x=1,2,3;對evb,x=4,5,6)。6個捕獲輸入引腳分別與qepl/iopa3、qep2/iopa4、iopa5、qep3/iope37、qep4/iopfo和iopfl 共用。當捕獲輸入引腳ca上檢測到所選的跳變時,所選的gp定時器的計數(shù)值被捕獲并存入到一個2級深的fifo堆棧中。
    tms320lf2407的can控制器模塊包括有郵箱和相應的控制/狀態(tài)寄存器。共有6個郵箱:2個接收郵箱(mbox0、1),2個發(fā)送郵箱(mbox4、5),2個可配置為接收或發(fā)送郵箱(mbox2、3)。tm$320lf2407的can控制器模塊完全支持can2.0b協(xié)議。
    通常情況下,測速傳感器系統(tǒng)輸出的是數(shù)字測速脈沖信號。因此,可把這個加到tms320lf2407dsp芯片捕獲引腳上。利用tms320lf2407芯片的捕獲單元測量輸入脈沖的周期,再由內(nèi)置的can總線控制器單元發(fā)出can周期信號,實現(xiàn)測速和遠程傳送一體化。
    2 系統(tǒng)配置
    2.1 捕獲單元及相應定時器的配置
    tm$320lf2407捕獲單元的工作原理是:以輸入脈沖上升沿、下降沿或上升沿下降沿為界,由相應的定時器計數(shù)來度量周期,計數(shù)值被捕獲送入相應的一個2級深的捕獲堆棧fif0中。因此,涉及到捕獲和定時器兩部分的配置操作。需要配置的捕獲操作有:在i/o口復用控制寄存器mcrx(x=a、b或c)中把相應引腳配置為捕獲輸入;在捕獲控制寄存器capcona/b中選擇(使能)捕獲單元、選擇(使能)相應的定時器和邊沿選擇(上升沿、下降沿或上升沿下降沿);在中斷標志寄存器eva/bifrx和中斷屏蔽寄存器eva/bimrx中設(shè)置中斷控制情況。需要配置定時器的操作有:對單個通用定時器txcnt清零;在全局通用定時器控制寄存器gptcona/b中設(shè)置相應定時器的操作及計數(shù)方向;在單個通用定時器周期控制寄存器txpr中設(shè)置比較周期;在單個通用定時器控制寄存器txcon中設(shè)置計數(shù)操作模式。
    周期控制寄存器txpr中設(shè)置的比較周期應大于輸入脈沖信號的周期。在不知道輸入脈沖信號周期的情況下,應設(shè)置為最大值。當度量周期超過最大捕獲時間時,用定時器溢出的方法再加軟件計數(shù)解決。
    2.2 捕獲周期的取出和傳送
    存放于捕獲堆棧fifo的捕獲周期的取出有中斷和查詢兩種方法。捕獲單元所在的事件管理器的中斷延時時間為20個cpu周期(典型),或25個cpu周期(最小保護),或8個cpu周期(單個中斷),或l6個cpu周期(不考慮存儲器空間)。在具體設(shè)計中,中斷延時時間被設(shè)為某一定值。在通常中斷處理程序很短的情況下,中斷時間主要由中斷延時時間決定。為了系統(tǒng)的擴展,即使是單個外設(shè),也還是以采用中斷方法為宜,而不是查詢方法。
    2.3 can控制器模塊和位定時器配置
    can控制器模塊的配置包括初始化郵箱、位定時器設(shè)置和數(shù)據(jù)收發(fā)。有關(guān)內(nèi)容參見文獻[1]。這里介紹一下位定時器的設(shè)置。
    位定時器的設(shè)置決定總線傳輸信號的波特率,是can控制器模塊的核心配置問題。tms320lf2407有兩個位控制寄存器bcrl和bcr2。它們必須在can控制器處于復位模式下(即ccr=1)才能被配置。位控制寄存器bcr2包括波特率預分頻位brp[7-0],用來確定can控制器的時間片tq,作為位控制的基準時間。位控制寄存器bcr2包括同步跳轉(zhuǎn)寬度選擇位sjw[1-0]、采樣次數(shù)選擇位sam[7]、包含傳播延時時間段(prog seg)和相位延時時間段1(phase segl)的時間段1 tsegl[3-0]、決定相位延時時間段2(phase seg2)的時間段2 tseg2[2-0]。這樣波特率為
    3 設(shè)計實例
    本例的基本設(shè)置是選定捕獲單元4(cap4)對輸入脈沖寬度進行捕獲,事件管理器evb的通用定時器3對脈沖進行計數(shù)。捕獲計數(shù)值從fifo堆棧取出送到臨時寄存器cap4temp,以便于擴展。再從cap4temp送到3號郵箱經(jīng)cantx/iopc6和canrx/iopc7發(fā)送,如圖1所示。