淺談PLC與PLD的區(qū)別
PLC與PLD對(duì)于大多數(shù)控制行業(yè)的朋友們與單片機(jī)愛(ài)好者,都不是陌生的名詞??墒悄私馑鼈兊?ldquo;一字之差”嗎?如果您對(duì)此感興趣,就請(qǐng)看看小編今天介紹的內(nèi)容。
1.可編程控制器(PLC)是計(jì)算機(jī)家族中的一員,是為工業(yè)控制應(yīng)用而設(shè)計(jì)制造的。早期的可編程控制器稱作可編程邏輯控制器,簡(jiǎn)稱PLC,它主要用來(lái)代替繼電器實(shí)現(xiàn)邏輯控制。隨著技術(shù)的發(fā)展,這種裝置的功能已經(jīng)大大超過(guò)了邏輯控制的范圍,因此,今天這種裝置稱作可編程控制器,簡(jiǎn)稱PC。但是為了避免與個(gè)人計(jì)算機(jī)的簡(jiǎn)稱混淆,所以將可編程控制器簡(jiǎn)稱PLC(Programmable Logic Controller)。
某型號(hào)PLC的內(nèi)部電路
PLC的主要特點(diǎn)
高可靠性、豐富的I/O接口模塊、采用模塊化結(jié)構(gòu)、編程簡(jiǎn)單易學(xué)、安裝簡(jiǎn)單,維修方便
PLC的功能
邏輯控制、定時(shí)控制、計(jì)數(shù)控制、步進(jìn)(順序)控制
PID控制
數(shù)據(jù)控制:PLC具有數(shù)據(jù)處理能力。
通信和聯(lián)網(wǎng)
其它:PLC還有許多特殊功能模塊,適用于各種特殊控制的要求,如:定位控制模塊,CRT模塊。
某型號(hào)PLC控制柜
2.PLD是可編程邏輯器件(ProgramableLogicDevice)的簡(jiǎn)稱,F(xiàn)PGA是現(xiàn)場(chǎng)可編程門(mén)陣列(FieldProgramableGateArray)的簡(jiǎn)稱,兩者的功能基本相同,只是實(shí)現(xiàn)原理略有不同,所以我們有時(shí)可以忽略這兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件或PLD/FPGA。
PLD是電子設(shè)計(jì)領(lǐng)域中最具活力和發(fā)展前途的一項(xiàng)技術(shù),它的影響絲毫不亞于70年代單片機(jī)的發(fā)明和使用。PLD能做什么呢?可以毫不夸張的講,PLD能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡(jiǎn)單的74電路,都可以用PLD來(lái)實(shí)現(xiàn)。
PLD如同一張白紙或是一堆積木,工程師可以通過(guò)傳統(tǒng)的原理圖輸入法,或是硬件描述語(yǔ)言自由的設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。通過(guò)軟件仿真,我們可以事先驗(yàn)證設(shè)計(jì)的正確性。在PCB完成以后,還可以利用PLD的在線修改能力,隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路。使用PLD來(lái)開(kāi)發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少PCB面積,提高系統(tǒng)的可靠性。
某型號(hào)的PLD內(nèi)部電路
典型的PLD由一個(gè)“與”門(mén)和一個(gè)“或”門(mén)陣列組成,而任意一個(gè)組合邏輯都可以用“與一或”表達(dá)式來(lái)描述,所以,PLD能以乘積和的形式完成大量的組合邏輯功能.這一階段的產(chǎn)品主要有PAL(可編程陣列邏輯)和GAL(通用陣列邏輯)。
對(duì)于可編程邏輯器件,設(shè)計(jì)人員可利用價(jià)格低廉的軟件工具快速開(kāi)發(fā)、仿真和測(cè)試其設(shè)計(jì)。然后,可快速將設(shè)計(jì)編程到器件中,并立即在實(shí)際運(yùn)行的電路中對(duì)設(shè)計(jì)進(jìn)行測(cè)試。原型中使用的PLD器件與正式生產(chǎn)最終設(shè)備(如網(wǎng)絡(luò)路由器、DSL調(diào)制解調(diào)器、DVD播放器、或汽車導(dǎo)航系統(tǒng))時(shí)所使用的PLD完全相同。這樣就沒(méi)有了NRE成本,最終的設(shè)計(jì)也比采用定制固定邏輯器件時(shí)完成得更快。
采用PLD的另一個(gè)關(guān)鍵優(yōu)點(diǎn)是在設(shè)計(jì)階段中客戶可根據(jù)需要修改電路,直到對(duì)設(shè)計(jì)工作感到滿意為止。這是因?yàn)镻LD基于可重寫(xiě)的存儲(chǔ)器技術(shù)--要改變?cè)O(shè)計(jì),只需要簡(jiǎn)單地對(duì)器件進(jìn)行重新編程。一旦設(shè)計(jì)完成,客戶可立即投入生產(chǎn),只需要利用最終軟件設(shè)計(jì)文件簡(jiǎn)單地編程所需要數(shù)量的PLD就可以了。
某型號(hào)PLD外觀
下面以FPGA為例進(jìn)行介紹PLD的編程原理。
編程數(shù)據(jù)存儲(chǔ)單元以陣列形式分布在FPGA中,編程數(shù)據(jù)存儲(chǔ)單元陣列結(jié)構(gòu)如圖1所示。存儲(chǔ)單元為5管SRAM結(jié)構(gòu), 只有一根位線。其中T管為本單元控制門(mén),由字線控制。數(shù)據(jù)以串行方式移入移位寄存器,而地址移位寄存器順序選中存儲(chǔ)單元的一根字線,當(dāng)某列字線為高電平時(shí), 該列存儲(chǔ)單元的T管導(dǎo)通,從而與位線接通,在寫(xiě)信號(hào)控制下將數(shù)據(jù)移位寄存器中一個(gè)字的數(shù)據(jù)通過(guò)各列位線寫(xiě)入該列存儲(chǔ)單元。
編程數(shù)據(jù)按照一定的數(shù)據(jù)結(jié)構(gòu)形式組成數(shù)據(jù)流裝入FPGA中,編程數(shù)據(jù)流由開(kāi)發(fā)軟件自動(dòng)生成。開(kāi)發(fā)軟件將設(shè)計(jì)轉(zhuǎn)化成網(wǎng)表文件,它自動(dòng)對(duì)邏輯電路分區(qū)、布局和布線和校驗(yàn)FPGA的設(shè)計(jì),然后按PROM格式產(chǎn)生編程數(shù)據(jù)流并形成編程數(shù)據(jù)文件,最后還可將編程數(shù)據(jù)文件存入PROM中。
圖1 編程數(shù)據(jù)存儲(chǔ)單元陣列結(jié)構(gòu)
現(xiàn)在一般把所有超過(guò)某一集成度(如1000門(mén)以上)的PLD器件都稱為CPLD。CPLD由可編程邏輯的功能塊圍繞一個(gè)可編程互連矩陣構(gòu)成。由固定長(zhǎng)度的金屬線實(shí)現(xiàn)邏輯單元之間的互連,并增加了I/O控制模塊的數(shù)量和功能??梢园袰PLD的基本結(jié)構(gòu)看成由可編程邏輯陣列(LAB)、可編程I/O控制模塊和可編程內(nèi)部連線(PIA)等三部分組成。
MAX7123的結(jié)構(gòu)
1).可編程邏輯陣列(LAB) 可編程邏輯陣列又若干個(gè)可編程邏輯宏單元(Logic Macro Cell,LMC)組成, LMC內(nèi)部主要包括與陣列、或陣列、可編程觸發(fā)器和多路選擇器等電路,能獨(dú)立地配置為時(shí)序或組合工作方式。
與或陣列結(jié)構(gòu)圖
CPLD中與、或門(mén)的表示方法
(1)乘積項(xiàng)共享結(jié)構(gòu) 在CPLD的宏單元中,如果輸出表達(dá)式的與項(xiàng)較多,對(duì)應(yīng)的或門(mén)輸入端不夠用時(shí),可以借助可編程開(kāi)關(guān)將同一單元(或其他單元)中的其他或門(mén)與之聯(lián)合起來(lái)使用,或者在每個(gè)宏單元中提供未使用的乘積項(xiàng)給其他宏單元使用。
EPM7128E乘積項(xiàng)擴(kuò)展和并聯(lián)擴(kuò)展項(xiàng)的結(jié)構(gòu)圖
(2)多觸發(fā)器結(jié)構(gòu)早期可編程器件的每個(gè)輸出宏單元(OLMC)只有一個(gè)觸發(fā)器,而CPLD的宏單元內(nèi)通常含兩個(gè)或兩個(gè)以上的觸發(fā)器,其中只有一個(gè)觸發(fā)器與輸出端相連,其余觸發(fā)器的輸出不與輸出端相連,但可以通過(guò)相應(yīng)的緩沖電路反饋到與陣列,從而與其他觸發(fā)器一起構(gòu)成較復(fù)雜的時(shí)序電路。這些不與輸出端相連的內(nèi)部觸發(fā)器就稱為“隱埋”觸發(fā)器。這種結(jié)構(gòu)可以不增加引腳數(shù)目,而增加其內(nèi)部資源。
(3)異步時(shí)鐘 早期可編程器件只能實(shí)現(xiàn)同步時(shí)序電路,在CPLD器件中各觸發(fā)器的時(shí)鐘可以異步工作,有些器件中觸發(fā)器的時(shí)鐘還可以通過(guò)數(shù)據(jù)選擇器或時(shí)鐘網(wǎng)絡(luò)進(jìn)行選擇。此外,OLMC內(nèi)觸發(fā)器的異步清零和異步置位也可以用乘積項(xiàng)進(jìn)行控制,因而使用更加靈活
2).可編程I/O單元(IOC)
CPLD的I/O單元(Input/Output Cell,IOC),是內(nèi)部信號(hào)到I/O引腳的接口部分。根據(jù)器件和功能的不同,各種器件的結(jié)構(gòu)也不相同。由于陣列型器件通常只有少數(shù)幾個(gè)專用輸入端,大部分端口均為I/O端,而且系統(tǒng)的輸入信號(hào)通常需要鎖存。因此I/O常作為一個(gè)獨(dú)立單元來(lái)處理.
3).可編程內(nèi)部連線(PIA)
可編程內(nèi)部連線的作用是在各邏輯宏單元之間以及邏輯宏單元和I/O單元之間提供互連網(wǎng)絡(luò)。各邏輯宏單元通過(guò)可編程連線陣列接收來(lái)自輸入端的信號(hào),并將宏單元的信號(hào)送目的地。這種互連機(jī)制有很大的靈活性,它允許在不影響引腳分配的情況下改變內(nèi)部的設(shè)計(jì)。
總結(jié):二者最大的區(qū)別就是控制邏輯,PLC為固定邏輯器件(通過(guò)改變軟件實(shí)現(xiàn)功能),而PLD為可變邏輯器件(通過(guò)改變內(nèi)部電路結(jié)構(gòu)實(shí)現(xiàn)功能)。另外,PLC一般用于弱點(diǎn)驅(qū)動(dòng)強(qiáng)電的場(chǎng)合(自動(dòng)化專業(yè)的朋友們一定很了解),例如大型機(jī)床的控制、機(jī)械手的控制。而PLD主要用于仿真電路等集成電路前期設(shè)計(jì)工作,與弱點(diǎn)類控制。