基于TB6560的步進(jìn)電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
對(duì)于速度和實(shí)時(shí)性能要求非常高的協(xié)議,在硬件中以專用協(xié)議MAC的形式實(shí)現(xiàn)實(shí)時(shí)功能。而協(xié)議的其他功能由運(yùn)行在嵌入式處理器中的軟件堆棧來(lái)完成,這些處理器可以是在Cyclone III FPGA中實(shí)現(xiàn)的Nios II軟核處理器。
工業(yè)以太網(wǎng)發(fā)展?fàn)顩r
圖1是來(lái)自ARC咨詢集團(tuán)的市場(chǎng)數(shù)據(jù)。ARC預(yù)測(cè)在今后幾年內(nèi),工業(yè)以太網(wǎng)市場(chǎng)會(huì)出現(xiàn)強(qiáng)勁增長(zhǎng)。其中,在2011年之前工業(yè)以太網(wǎng)器件和交換機(jī)銷售增長(zhǎng)年度復(fù)合增長(zhǎng)率將達(dá)到30%。
圖1 ARC咨詢集團(tuán)預(yù)測(cè):今后5年中以太網(wǎng)現(xiàn)場(chǎng)器件和交換機(jī)年度復(fù)合增長(zhǎng)將達(dá)到30%
目前的工業(yè)通信環(huán)境還不統(tǒng)一,有較多的競(jìng)爭(zhēng)工業(yè)以太網(wǎng)標(biāo)準(zhǔn)和傳統(tǒng)的現(xiàn)場(chǎng)總線標(biāo)準(zhǔn),很多解決方案采用了ASIC、ASSP和MCU來(lái)實(shí)現(xiàn)。這類硬件不是很靈活,需要針對(duì)用戶支持的每一種協(xié)議改變硬件和相應(yīng)的軟件堆棧。
目前,有幾種開放標(biāo)準(zhǔn)工業(yè)以太網(wǎng)協(xié)議,包括EtherCAT、Ethernet IP、Modbus/TCP、PROFINET、Ethernet POWERLINK和SERCOS III。這些協(xié)議都可以使用單一硬件設(shè)計(jì)在FPGA中實(shí)現(xiàn),使工程師能夠在一個(gè)支持多種協(xié)議標(biāo)準(zhǔn)的硬件平臺(tái)上進(jìn)行標(biāo)準(zhǔn)化處理。
隨著時(shí)間的推移,越來(lái)越多的標(biāo)準(zhǔn)采用了基于FPGA的平臺(tái)。推動(dòng)工業(yè)以太網(wǎng)在工廠自動(dòng)化以及過(guò)程系統(tǒng)中應(yīng)用的主要因素包括平臺(tái)的通用性和性能、辦公室和工廠信息集成以共享實(shí)時(shí)信息、降低總成本等。
工業(yè)以太網(wǎng)解決方案支持通用平臺(tái),從而推動(dòng)了辦公室和工廠集成,在底層控制器和車間管理之間建立鏈接,共享實(shí)時(shí)信息,實(shí)現(xiàn)迅速響應(yīng)。同時(shí)還可以通過(guò)內(nèi)聯(lián)網(wǎng)連接車間內(nèi)部、車間之間以及車間和辦公室之間的實(shí)時(shí)和非實(shí)時(shí)系統(tǒng),與對(duì)應(yīng)的現(xiàn)場(chǎng)總線協(xié)議后向兼容,支持新系統(tǒng)和老系統(tǒng)之間的平臺(tái)操作。
開放協(xié)議標(biāo)準(zhǔn)簡(jiǎn)化了設(shè)備實(shí)施和網(wǎng)絡(luò)通信,有助于工廠從多層現(xiàn)場(chǎng)總線過(guò)渡到單一的以太網(wǎng),支持各種商用設(shè)備和電纜,即使工業(yè)以太網(wǎng)協(xié)議出現(xiàn)了變化,也可以重復(fù)使用這些設(shè)備和電纜。
通過(guò)定制網(wǎng)絡(luò),支持多種拓?fù)?,能夠在網(wǎng)絡(luò)中增加或者去掉器件,提供更多的控制功能,而且不會(huì)影響系統(tǒng)其他部分的工作,從而縮短了開發(fā)時(shí)間。
工業(yè)以太網(wǎng)基于穩(wěn)定、成熟、可靠的以太網(wǎng)技術(shù),降低了實(shí)施、維護(hù)和總的系統(tǒng)成本,從而實(shí)現(xiàn)了產(chǎn)品更迅速地面市,不需要ASIC、ASSP和MCU設(shè)計(jì)昂貴的專用解決方案,避免了硬件和軟件改動(dòng)導(dǎo)致的高成本。
工業(yè)以太網(wǎng)體系結(jié)構(gòu)
工業(yè)以太網(wǎng)協(xié)議可以分成三類體系結(jié)構(gòu)(圖2):A類、B類和C類協(xié)議標(biāo)準(zhǔn)。
A類使用標(biāo)準(zhǔn)以太網(wǎng)TCP/IP,主要用于非實(shí)時(shí)信息層面的應(yīng)用,例如工廠自動(dòng)化、低速傳感器和HMI顯示等PLC應(yīng)用。其典型的響應(yīng)時(shí)間大約為100ms左右,或者更長(zhǎng)。EtherNet/IP、Modbus/TCP和PROFINET CBA是這一類中常見(jiàn)的以太網(wǎng)協(xié)議。
B類在標(biāo)準(zhǔn)以太網(wǎng)硬件之上使用定制軟件堆棧,提供適當(dāng)?shù)膶?shí)時(shí)性能,響應(yīng)時(shí)間小于10ms。B類適合低精度電機(jī)控制和遠(yuǎn)程I/O通信等應(yīng)用,涉及到Ethernet Powerlink和PROFINET RT等協(xié)議。
C類在MAC層使用改進(jìn)后的硬件,同時(shí)使用定制軟件來(lái)實(shí)現(xiàn)確定的快速實(shí)時(shí)性能,一般小于1ms,適用于器件級(jí)的精確運(yùn)動(dòng)控制等應(yīng)用。EtherCAT、PROFINET IRT和SERCOS III都是C類工業(yè)以太網(wǎng)協(xié)議的例子。C類體系結(jié)構(gòu)的標(biāo)準(zhǔn)網(wǎng)絡(luò)流量帶寬小于A類體系結(jié)構(gòu)。
為支持所有三類工業(yè)以太網(wǎng)體系結(jié)構(gòu),需要具有全面的可配置平臺(tái)能力,能夠同時(shí)改變硬件和軟件。
基于FPGA的以太網(wǎng)實(shí)現(xiàn)
傳統(tǒng)上,微控制器、ASIC或者ASSP一直用于實(shí)現(xiàn)現(xiàn)場(chǎng)總線和工業(yè)以太網(wǎng)解決方案。這些產(chǎn)品具有很高的性價(jià)比,當(dāng)功能、協(xié)議標(biāo)準(zhǔn)和I/O固定不變,或者沒(méi)有硬件改變時(shí),工作情況良好。然而由于工業(yè)網(wǎng)絡(luò)標(biāo)準(zhǔn)在不斷變化,而工業(yè)應(yīng)用要求產(chǎn)品生命周期非常長(zhǎng),通常在10年以上,此時(shí),這些產(chǎn)品便具有一定的局限性。每一個(gè)新的解決方案都需要對(duì)電路板進(jìn)行重制,無(wú)數(shù)的軟件編程人員將代碼移植到新處理器和新平臺(tái)上,這是非常耗時(shí)的過(guò)程。
Altera Cyclone III系列等FPGA可以在同一平臺(tái)上將處理器功能和工業(yè)以太網(wǎng)協(xié)議與其他定制IP或者接口進(jìn)行更新和集成。當(dāng)工程師熟悉了Altera提供的Quartus II和SOPC Builder等FPGA開發(fā)工具后,工作就會(huì)變得非常簡(jiǎn)單。
圖3是支持工業(yè)以太網(wǎng)的典型應(yīng)用的體系結(jié)構(gòu)。所有工業(yè)以太網(wǎng)標(biāo)準(zhǔn)都基于IEEE 802.3以太網(wǎng)物理層。所以,在圖3的下部,PHY和總是相同的。在標(biāo)準(zhǔn)以太網(wǎng)應(yīng)用中,可以在PHY之上采用標(biāo)準(zhǔn)介質(zhì)訪問(wèn)控制器或者M(jìn)AC,對(duì)于非實(shí)時(shí)工業(yè)協(xié)議,這就是其典型的實(shí)現(xiàn)方式。
圖2 工業(yè)以太網(wǎng)分類
圖3 支持工業(yè)以太網(wǎng)的典型應(yīng)用的體系結(jié)構(gòu)
Ethernet IP、Modbus/TCP和Ethernet POWERLINK等協(xié)議應(yīng)用了標(biāo)準(zhǔn)MAC,因此,可以只修改運(yùn)行在Nios II處理器上的軟件堆棧,使用相同的以太網(wǎng)MAC IP來(lái)支持這些協(xié)議。
對(duì)于EtherCAT、PROFINET IRT和SERCOS III等有實(shí)時(shí)要求的協(xié)議,標(biāo)準(zhǔn)MAC就不能滿足要求了。在這種情況下,必須使用專用協(xié)議MAC。對(duì)于采用了Cyclone III等FPGA的設(shè)計(jì),可以使用支持專用協(xié)議的MAC來(lái)替代標(biāo)準(zhǔn)MAC。某些協(xié)議還可能需要支持IEEE 1588功能,或加入集線器或者交換機(jī)以提高性能,增加環(huán)形保護(hù)等其他功能。
正確的應(yīng)用這些硬件就可以接收任何工業(yè)以太網(wǎng)標(biāo)準(zhǔn)數(shù)據(jù)包。此時(shí),用戶需要一個(gè)處理器來(lái)處理數(shù)據(jù)包、管理通信功能。在FPGA中采用Nios II處理器內(nèi)核等軟核處理器很容易實(shí)現(xiàn)這些功能,在這類處理器上可以運(yùn)行實(shí)時(shí)操作系統(tǒng)。
這種實(shí)現(xiàn)方法針對(duì)不同的堆棧,為工程師提供了一致的軟件平臺(tái),在實(shí)現(xiàn)單芯片多標(biāo)準(zhǔn)解決方案時(shí)很容易對(duì)軟件進(jìn)行支持和維護(hù)。現(xiàn)在,用戶可以通過(guò)任何工業(yè)以太網(wǎng)協(xié)議來(lái)發(fā)送和接收數(shù)據(jù)。
通過(guò)軟件API抽象出以太網(wǎng)鏈接接口是實(shí)現(xiàn)應(yīng)用程序數(shù)據(jù)流的最佳方法,這樣,當(dāng)改變工業(yè)以太網(wǎng)標(biāo)準(zhǔn)時(shí),只需要很少的改動(dòng)甚至不用改動(dòng)就可以運(yùn)行應(yīng)用程序。在支持多標(biāo)準(zhǔn)時(shí),節(jié)省了大量的時(shí)間和投入。軟件API通過(guò)雙端口RAM、串行I/O或者并行I/O進(jìn)行通信。應(yīng)用軟件可以運(yùn)行在外部處理器或者FPGA內(nèi)部的另一Nios處理器上。
FPGA硬件提供靈活的平臺(tái),任何時(shí)候都能夠重新配置,支持對(duì)產(chǎn)品特性進(jìn)行立即更新。這意味著可以在同一Cyclone III FPGA上實(shí)現(xiàn)標(biāo)準(zhǔn)或者定制工業(yè)以太網(wǎng)MAC、DSP模塊以及其他定制邏輯和I/O接口,提高工業(yè)網(wǎng)絡(luò)產(chǎn)品的性能和接口能力。
基于Altera FPGA的解決方案和硬件/軟件設(shè)計(jì)工具能夠設(shè)計(jì)并集成工程師所需要的一切功能。嵌入在FPGA中的Nios II軟核處理器可以用于運(yùn)行以太網(wǎng)堆棧驅(qū)動(dòng)軟件和其他功能。甚至還可以加入第二個(gè)處理器,以支持應(yīng)用層軟件。而且,Ethernet IP和SERCOS III等工業(yè)以太網(wǎng)協(xié)議僅以IP的形式發(fā)布,允許使用FPGA來(lái)支持這些協(xié)議標(biāo)準(zhǔn)。這一方法提供了單一平臺(tái),很容易滿足需求的變化。不必花費(fèi)大量時(shí)間針對(duì)每一以太網(wǎng)協(xié)議導(dǎo)入軟件堆棧,在處理器上運(yùn)行,而是使用現(xiàn)成的工具和軟件堆棧,支持所有的以太網(wǎng)標(biāo)準(zhǔn)。而且,在FPGA平臺(tái)上改動(dòng)設(shè)計(jì)時(shí),不需要針對(duì)每一新協(xié)議來(lái)設(shè)計(jì)新電路板。一塊電路板能夠支持多種工業(yè)以太網(wǎng)協(xié)議,從而減小了NIE的費(fèi)用,降低了長(zhǎng)期擁有成本。FPGA中實(shí)現(xiàn)的工業(yè)以太網(wǎng)協(xié)議能夠在不同的設(shè)計(jì)和FPGA器件系列之間進(jìn)行移植,因此,下一代產(chǎn)品可以重新使用相同的IP。Altera及其合作伙伴所提供的工業(yè)以太網(wǎng)快速開發(fā)解決方案確保了較短的產(chǎn)品面市周期。靈活的FPGA支持在最終產(chǎn)品中應(yīng)用早期工程工作,設(shè)計(jì)人員可以在最后一刻更改設(shè)計(jì),避免PCB重制。
SOPC Builder軟件工具
SOPC Builder是設(shè)計(jì)用于自動(dòng)交付、配置和集成IP模塊的工具,它采用了窗口類型的圖形開發(fā)環(huán)境,用戶可以在其中建立全部的CPU系統(tǒng),甚至不需要寫入HDL代碼。這樣,去掉了耗時(shí)的手動(dòng)編碼過(guò)程,設(shè)計(jì)人員能夠?qū)⒕性趦?yōu)化解決方案上。
通過(guò)圖4,可以看到SOPC Builder窗口以及集成到設(shè)計(jì)中的Altera IP、第三方IP和硬件模塊列表。當(dāng)用戶點(diǎn)擊這些IP模塊時(shí),右側(cè)會(huì)打開一個(gè)配置窗口,從這里可以選擇需要的配置選項(xiàng),加入到用戶的系統(tǒng)中。加入所需的IP后,會(huì)看到所選的組件列在主窗口中,窗口左側(cè)是已經(jīng)自動(dòng)連接在一起的模塊。用戶可以隨時(shí)通過(guò)鼠標(biāo)編輯它,重新配置IP組件或者鏈接,為其應(yīng)用建立理想的系統(tǒng)。完成系統(tǒng)后,只需要簡(jiǎn)單的點(diǎn)擊底部的“Generate”按鈕,告訴SOPC Builder生成一個(gè)集成硬件模塊,它含有設(shè)計(jì)人員所選擇的所有IP以及從GUI中選擇的配置和鏈接。SOPC Builder生成完整的設(shè)計(jì),將其交給Quartus II設(shè)計(jì)環(huán)境,并對(duì)系統(tǒng)進(jìn)行編譯,建立HDL仿真模型或者FPGA配置文件。
嵌入式軟件開發(fā)流程
圖5是嵌入式軟件的開發(fā)流程圖。如果是硬件設(shè)計(jì)人員,那么不需要很大的投入就可以不斷修改設(shè)計(jì),實(shí)現(xiàn)最佳系統(tǒng)。但是,如果是軟件工程師,在典型的硬件/軟件集成過(guò)程中所面臨的挑戰(zhàn)是必須跟上不斷變化的處理器平臺(tái)。與修改FPGA和Nios II處理器配置相比,軟件更新需要做很多工作,要花較長(zhǎng)的時(shí)間來(lái)進(jìn)行更新。由于SOPC Builder還生成含有所有硬件配置信息的文件,這樣,Nios II軟件開發(fā)環(huán)境就能夠?qū)崿F(xiàn)定制軟件,建立專用硬件支持庫(kù)。這種庫(kù)含有系統(tǒng)需要的所有器件驅(qū)動(dòng)以及硬件抽象層,即HAW,提取出訪問(wèn)硬件的所有應(yīng)用程序。如果改動(dòng)硬件,軟件環(huán)境會(huì)探測(cè)到這些改變,在軟件工程中自動(dòng)更新所有硬件設(shè)置和器件驅(qū)動(dòng)。這種自動(dòng)工具解決方案能夠幫助硬件和軟件工程師更迅速、簡(jiǎn)單地修改設(shè)計(jì),不會(huì)出錯(cuò)。
圖4 SOPC builder窗口截圖
圖5 嵌入式軟件開發(fā)流程