<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于TMS320VC33速度控制系統(tǒng)硬件平臺(tái)設(shè)計(jì)

          基于TMS320VC33速度控制系統(tǒng)硬件平臺(tái)設(shè)計(jì)

          作者: 時(shí)間:2010-08-13 來(lái)源:網(wǎng)絡(luò) 收藏

            長(zhǎng)沙國(guó)防科大磁懸浮中心的磁懸浮鐵路試驗(yàn)線是我國(guó)首條通過(guò)中試評(píng)審的磁懸浮線路,擁有自主的知識(shí)產(chǎn)權(quán)。列車的駕駛系統(tǒng)由S7_300系列PLC組網(wǎng)而成,主控PLC處理來(lái)自駕駛臺(tái)的控制命令,將處理后的控制信息通過(guò)FDL網(wǎng)傳給底層控制PLC,底層控制PLC根據(jù)網(wǎng)絡(luò)傳輸過(guò)來(lái)的命令控制車輛設(shè)備。駕駛臺(tái)上有一個(gè)12級(jí)位的控制手柄,列車的運(yùn)行狀態(tài)由它來(lái)控制,通過(guò)調(diào)節(jié)級(jí)位間接改變牽引力的大小來(lái)控制列車運(yùn)行速度。列車的駕駛主要依賴于駕駛員的經(jīng)驗(yàn),增加了駕駛員的負(fù)擔(dān),在短途往返運(yùn)行線路上極易疲勞。

            基于的磁懸浮列車速控系統(tǒng)就是在上述背景下提出的,采用系統(tǒng)后,駕駛臺(tái)給出的不再是控制力的大小,而是速度大小,由平臺(tái)根據(jù)算法動(dòng)態(tài)改變列車牽引力。司機(jī)只需要改變級(jí)位,其它工作都由速控系統(tǒng)來(lái)完成。這樣既減輕了司機(jī)的工作負(fù)擔(dān),同時(shí)又有助于提高列車的駕駛質(zhì)量。考慮到主控PLC并不適合進(jìn)行數(shù)學(xué)運(yùn)算,我們?yōu)樗倏叵到y(tǒng)專門設(shè)計(jì)了硬件平臺(tái),它以TMS320VC33(以下簡(jiǎn)稱VC33)為核心,配以相應(yīng)的接口,實(shí)現(xiàn)。

            1 速控系統(tǒng)總體結(jié)構(gòu)

            磁懸浮列車的運(yùn)行速度很高,因此要求速度控制系統(tǒng)具有極高的實(shí)時(shí)處理速度。VC33 是一種32位浮點(diǎn)處理器,它采用0.18微米制造工藝,是C3X家族的最新一代產(chǎn)品。VC33的功能結(jié)構(gòu)與C31相似,但由于在時(shí)鐘、電源、存儲(chǔ)區(qū)設(shè)計(jì)上做了優(yōu)化,其工作速度更快(每條指令執(zhí)行只需13ns)、功耗更小,并集成了較大的片內(nèi)存儲(chǔ)區(qū)。

            圖1虛線框中是速度控制系統(tǒng)的硬件平臺(tái)。它分為三部分:與駕駛臺(tái)的接口、DSP處理器、與PLC的接口。駕駛臺(tái)和PLC都是對(duì)數(shù)字I/O量進(jìn)行操作,I/O量使用的是110V電源電壓,而DSP平臺(tái)的數(shù)字I/O量都為3.3V~5V,因此必須在I/O接口實(shí)現(xiàn)110V I/O量與3.3V I/O量之間的轉(zhuǎn)換。檢測(cè)系統(tǒng)測(cè)量并通過(guò)CAN總線上傳列車的速度與位置信息,主控PLC和DSP使用RS485接口接收。

          速度控制系統(tǒng)的硬件平臺(tái)

            2 數(shù)字I/O量接口板的設(shè)計(jì)

            I/O接口板(見圖2)用光耦芯片TLP521-4實(shí)現(xiàn)110V開關(guān)量與3.3V開關(guān)量之間的電平轉(zhuǎn)換。用LVT16245作為DSP目標(biāo)板與數(shù)字I/O轉(zhuǎn)換接口之間的鎖存器,控制數(shù)據(jù)流的方向,同時(shí)用作數(shù)據(jù)驅(qū)動(dòng)器。它為三態(tài)輸出,未被選通時(shí)呈現(xiàn)高阻狀態(tài)。指示燈指示開關(guān)量信息。需要注意,R1、R2是限流電阻,考慮到功耗的關(guān)系,應(yīng)選用大功率電阻(如2W)。

          數(shù)字I/O量接口板的設(shè)計(jì)

            3 DSP控制面板的設(shè)計(jì)

            3.1 電源時(shí)鐘電路

            不同于C3X家族的其它成員,VC33使用兩種電源供電,3.3V作為芯片的工作電壓,1.8V作為芯片核心的工作電壓。采用兩種供電電壓既可以保證芯片對(duì)外圍電路的驅(qū)動(dòng)能力,又可以有效地降低芯片功耗,減小發(fā)熱量。通常的電源僅提供5V的標(biāo)準(zhǔn)電源電壓,因此使用TPS767D318進(jìn)行5V到3.3V和1.8V的電壓轉(zhuǎn)換,它可同時(shí)輸出3.3V和1.8V兩種電壓,最大可提供1A的電流。電源時(shí)鐘電路如圖3所示,圖中的二極管起保持輸出端電壓差的作用。

          電源時(shí)鐘電路

            VC33 DSP強(qiáng)化了時(shí)鐘電路的作用,共有5個(gè)引腳作為時(shí)鐘電路的接入引腳。EXTCLK接外部時(shí)鐘源,此時(shí)DSP使用外部時(shí)鐘作為系統(tǒng)時(shí)鐘,不用時(shí)該引腳接地;XIN、XOUT接外部晶體振蕩器,作為DSP的基準(zhǔn)時(shí)鐘源;CLKMD0、CLKMD1為時(shí)鐘模式選擇引腳,可基于基準(zhǔn)時(shí)鐘源調(diào)整DSP的運(yùn)行頻率,可選時(shí)鐘模式見表1。

          可選時(shí)鐘模式

            3.2 存儲(chǔ)區(qū)電路設(shè)計(jì)

            加大了片載存儲(chǔ)區(qū)容量是VC33明顯優(yōu)于C3X家族其它成員的地方。VC33共有34K32位存儲(chǔ)區(qū),24位地址線最大可訪問(wèn)16M存儲(chǔ)空間。微處理器模式和微計(jì)算機(jī)模式分別定義了不同的存儲(chǔ)空間分配方式。處于微處理器模式時(shí),DSP在仿真器監(jiān)控的條件下運(yùn)行經(jīng)仿真器下載到SRAM存儲(chǔ)區(qū)中的程序;當(dāng)處于微計(jì)算機(jī)模式時(shí),DSP中的BOOTLOADER將存儲(chǔ)在ROM或FLASH中的程序下載至SRAM區(qū)并開始運(yùn)行,此時(shí)仿真器不起作用。

            VC33的片內(nèi)存儲(chǔ)區(qū)在實(shí)際應(yīng)用中難以滿足運(yùn)行程序與存儲(chǔ)數(shù)據(jù)的需要,因此必須為系統(tǒng)擴(kuò)展外部存儲(chǔ)區(qū),包括靜態(tài)SRAM區(qū)和永久ROM區(qū)。SRAM區(qū)在系統(tǒng)工作時(shí)與VC33內(nèi)部存儲(chǔ)區(qū)結(jié)合使用,作為系統(tǒng)的工作區(qū),ROM區(qū)則永久保存運(yùn)行程序和特定參數(shù),系統(tǒng)上電時(shí)由引導(dǎo)程序?qū)OM區(qū)中的程序和數(shù)據(jù)讀至SRAM區(qū)中。

            VC33的高速特點(diǎn)要求擴(kuò)展的SRAM必須有極高的存取速度,這里選用兩片64K×16bit的IDT71V016 SRAM組成64K×32bit片外存儲(chǔ)區(qū),其地址訪問(wèn)時(shí)間僅為12ns,能夠滿足存取速度的要求。

            由于系統(tǒng)只在上電和復(fù)位時(shí)訪問(wèn)永久ROM,對(duì)它的存取時(shí)間要求不太高,采用一片512K×16bit的am29lv800b FLASH ROM,其訪問(wèn)時(shí)間為60~120ns。FLASHROM可多次重復(fù)擦拭,數(shù)據(jù)保存時(shí)間長(zhǎng),寫入程序不需要額外的工具。瑞泰創(chuàng)新公司提供了專用的FLASH寫入程序,也可根據(jù)實(shí)際情況自己編寫,靈活性很好。

            圖4是電路設(shè)計(jì)原理圖,用G20V8B進(jìn)行地址選通,后面還會(huì)詳細(xì)介紹DSP板的地址選通邏輯。圖中CLKR0是串口式時(shí)鐘引腳,這里作I/O端口(可通過(guò)設(shè)置串口控制寄存器實(shí)現(xiàn)),接收FLASH狀態(tài)信號(hào)。

          電路設(shè)計(jì)原理圖

            3.3 數(shù)字I/O接口設(shè)計(jì)

            數(shù)字I/O接口用來(lái)與I/O接口板相連,發(fā)送和接收32位開關(guān)量控制信息。LVT16245用作32位數(shù)據(jù)線的總線驅(qū)動(dòng)與數(shù)據(jù)鎖存器,保證信號(hào)的傳輸質(zhì)量。32位信號(hào)經(jīng)32位數(shù)據(jù)總線發(fā)送和接收,由相應(yīng)的地址選通邏輯控制信號(hào)的讀取方向。因?yàn)镈SP從駕駛臺(tái)讀取數(shù)據(jù),然后將數(shù)據(jù)發(fā)送至PLC,地址選通邏輯在控制LVT16245的數(shù)據(jù)方向的同時(shí),還必須兼顧I/O接口板的數(shù)據(jù)流方向。

            3.4 串口設(shè)計(jì)

            DSP系統(tǒng)板需要采集來(lái)自RS485端口的速度位置信息。DSP自身帶有串口引腳,但其傳輸為同步方式,無(wú)法與異步方式的RS485接口相連。因此選用有自動(dòng)流控功能的異步通信芯片TL16C550C實(shí)現(xiàn)DSP的串口通信(見圖5)。

          選用有自動(dòng)流控功能的異步通信芯片TL16C550C實(shí)現(xiàn)DSP的串口通信

            TL16C550C(ACE)在從外設(shè)或Modem接收數(shù)據(jù)時(shí)實(shí)現(xiàn)從串口到并口的轉(zhuǎn)換,當(dāng)從CPU接收數(shù)據(jù)時(shí)實(shí)現(xiàn)并口到串口的轉(zhuǎn)換,CPU可在任何時(shí)候讀取芯片的狀態(tài)。ACE包含完全的Modem控制能力和處理器中斷系統(tǒng),可配合來(lái)最小化通信連接軟件管理。

            ACE包含波特率發(fā)生器,可對(duì)輸入時(shí)鐘分頻和倍頻,規(guī)則包含了接收器的16倍頻時(shí)鐘,ACE有1M波特的串口傳輸率,因此每一位耗時(shí)1μs,一個(gè)字節(jié)耗時(shí)10μs。

            ACE包含了12個(gè)完全可訪問(wèn)的寄存器,DSP可通過(guò)對(duì)這些寄存器的讀寫操作控制ACE的工作狀態(tài)。用A0~A2選擇寄存器地址,D0~D7讀寫寄存器內(nèi)容。

            ACE可直接進(jìn)行9線模式的串口通信。為提高串口的驅(qū)動(dòng)能力,適應(yīng)RS232和RS485標(biāo)準(zhǔn),額外為其增加了兩片串口芯片MAX232、MAX485,使DSP板通過(guò)串口傳遞信息時(shí)不再需要額外的設(shè)備。通過(guò)跳線進(jìn)行不同串口通信模式的轉(zhuǎn)換。

            3.5 地址的分配與選通

            上面介紹的存儲(chǔ)區(qū)、數(shù)字I/O端口、串口都需要占用DSP的16M地址空間,合理分配地址和選通引腳成為關(guān)鍵。VC33提供了一個(gè)專用的地址選通引腳STRB,它與預(yù)解碼引腳PAGE0~PAGE3配合使用,能夠快速訪問(wèn)特定地址。本系統(tǒng)的地址分布比較復(fù)雜,使用GAL20V8B進(jìn)行邏輯運(yùn)算。表2是地址空間分配表。

          地址空間分配表



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();