當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于ARM7與FPGA組成的可編程控制器

1 引言

可編程控制器(Programmable Logic Controller)具有抗干擾強(qiáng)、可靠性高、編程簡(jiǎn)單的特點(diǎn),被廣泛應(yīng)用于工業(yè)控制領(lǐng)域。但是傳統(tǒng)小型可編程控制器難以將智能控制算法嵌入到控制系統(tǒng)中。本文以嵌入式微處理器S3C44B0XFPGA為核心設(shè)計(jì)通用小型的可編程控制器,論述了PLC主機(jī)各功能模塊通過(guò)CAN總線與S3C44B0X連接的接口電路和主機(jī)程序設(shè)計(jì)及執(zhí)行過(guò)程。通過(guò)FPGA配置I/O口和嵌入先進(jìn)的智能控制算法,如PID、模糊控制、神經(jīng)網(wǎng)絡(luò)算法等,這些控制算法作為控制模塊嵌入PLC的梯形圖程序中作為功能模塊調(diào)用,各個(gè)模塊之間通過(guò)CAN總線連接,用戶根據(jù)被控對(duì)象現(xiàn)場(chǎng)的需求可以選擇多個(gè)人機(jī)界面裝置,提供監(jiān)控控制系統(tǒng)運(yùn)行狀態(tài)的便利。

2 PLC系統(tǒng)的總體設(shè)計(jì)

系統(tǒng)采用32位嵌入式微處理器S3C44B0X作為可編程控制器的CPU,以此為核心擴(kuò)展系統(tǒng)需要的存儲(chǔ)器;通過(guò)FPGA擴(kuò)展PLC所需要的I/O口,完成相應(yīng)輸入輸出模塊的設(shè)計(jì);系統(tǒng)通過(guò)微處理器的SPI接口擴(kuò)展CAN總線,用于連接上位機(jī)、主控機(jī)、編程器、以及液晶顯示與觸摸屏等功能模塊進(jìn)行通信,用戶根據(jù)被控對(duì)象現(xiàn)場(chǎng)需求可以選擇多個(gè)人機(jī)界面裝置,這些裝置作為擴(kuò)展模塊掛接在CAN總線上;實(shí)現(xiàn)智能控制算法的FPGA與主機(jī)微處理器S3C44B0X的I/O口連接。用戶使用手持編程器編寫(xiě)指令表程序后,通過(guò)CAN總線傳輸?shù)娇刂浦鳈C(jī)的存儲(chǔ)器中,以便CPU執(zhí)行這些程序;系統(tǒng)運(yùn)行的狀態(tài)參數(shù)通過(guò)CAN總線傳輸?shù)奖O(jiān)控系統(tǒng)中,在監(jiān)控系統(tǒng)中顯示系統(tǒng)運(yùn)行的狀態(tài);FPGA實(shí)現(xiàn)的智能控制算法作為控制模塊嵌入PLC梯形圖程序中作為功能模塊調(diào)用。系統(tǒng)的結(jié)構(gòu)框圖如圖1所示:

3 PLC主控器的設(shè)計(jì)

3.1系統(tǒng)存儲(chǔ)器的擴(kuò)展

3.1.1 存儲(chǔ)器Nor Flash 的擴(kuò)展

可編程控制器需要掉電保存系統(tǒng)啟動(dòng)的引導(dǎo)程序、梯形圖或指令表程序,以及解釋梯形圖或指令表的解釋程序,而S3C44B0X微處理器內(nèi)部沒(méi)有存儲(chǔ)器。閃速存儲(chǔ)器(Flash Memory)具有非易失性,并且可輕易擦寫(xiě),在嵌入式系統(tǒng)中得到廣泛的應(yīng)用。所以本課題采用了2MB的SST39VF1601存儲(chǔ)器來(lái)存儲(chǔ)上面提到的引導(dǎo)程序、解釋程序及用戶程序。該存儲(chǔ)器采用標(biāo)準(zhǔn)的總線接口與處理器交互,對(duì)它的讀取不需要任何特殊的代碼。由于系統(tǒng)啟動(dòng)的引導(dǎo)程序儲(chǔ)存在Flash ROM,要把其映射在處理器的Bank0地址空間,這樣系統(tǒng)上電復(fù)位后,處理器就自動(dòng)從0x00000000地址處開(kāi)始取得指令運(yùn)行。Flash與S3C44B0X的接口電路圖如圖2所示。處理器ADDR20~1對(duì)應(yīng)著Flash ROM的A19~0,偏移了1位,這是由于S3C44B0X是按照字節(jié)編址的,而Flash ROM是以16位為一個(gè)存儲(chǔ)單元。

 

圖1 系統(tǒng)結(jié)構(gòu)框圖

3.1.2 SDRAM 的擴(kuò)展

隨機(jī)存取存儲(chǔ)器RAM(Random Access Memory)是易失性的存儲(chǔ)器,在掉電后數(shù)據(jù)即消失。但與ROM器件不同的是,它的隨機(jī)讀寫(xiě)速度非???,寫(xiě)入數(shù)據(jù)之前也不需要進(jìn)行擦寫(xiě),這些特性使它成為嵌入式系統(tǒng)中必不可少的存儲(chǔ)設(shè)備之一。為了提高系統(tǒng)執(zhí)行的速度,在系統(tǒng)啟動(dòng)時(shí),把梯形圖或指令表程序復(fù)制到讀寫(xiě)更快的RAM中,這樣系統(tǒng)執(zhí)行程序的過(guò)程在RAM中完成,提高了可編程控制器掃描程序的周期。

常用的RAM分為SRAM和DRAM兩種類型,其中DRAM又分為DRAM和SDRAM。S3C44B0X芯片本身提供了與DRAM與SDRAM直接接口的解決方案,因此只需對(duì)與存儲(chǔ)器控制器相關(guān)的寄存器進(jìn)行的適當(dāng)?shù)呐渲?。本系統(tǒng)采用的同步動(dòng)態(tài)存儲(chǔ)器SDRAM為8MB的HY57V641620,映射在Bank6地址空間。接口電路圖如3所示。這里的BA即A22~21。由于HY57V641620的存儲(chǔ)結(jié)構(gòu)為:1Mbⅹ16ⅹ4 Bank,在電路上以A22~21作為bank地址選擇線。[!--empirenews.page--]

 

圖2  程序存儲(chǔ)器Nor Flash的擴(kuò)展 圖3  SDRAM的擴(kuò)展

3.1.3 EEPROM的擴(kuò)展

在可編程控制器中,一些編程軟元件的數(shù)據(jù)內(nèi)容需要掉電保存,如:D數(shù)據(jù)存儲(chǔ)器、部分特殊輔助繼電器M等。系統(tǒng)通過(guò)S3C44B0X自帶的IIC接口擴(kuò)展EEPROM,用來(lái)保存這些掉電需要保存數(shù)據(jù)的編程軟元件,在系統(tǒng)啟動(dòng)時(shí),首先把這些軟元件的值從EEPROM拷貝到SDRAM中,以便提高系統(tǒng)執(zhí)行速度。采用的EEPROM型號(hào)為:AT24C512,系統(tǒng)擴(kuò)展原理圖如下。系統(tǒng)擴(kuò)展只需要兩根線,一根數(shù)據(jù)線,一根時(shí)鐘線,這兩根線加上拉電阻是因?yàn)镮IC總線是開(kāi)漏輸出。

 圖4  IIC接口擴(kuò)展EEPROM

3.2 I/O口擴(kuò)展

在嵌入式微處理器S3C44B0X中總共有71個(gè)普通的I/O口,這些I/O引腳大多都是多功能引腳,其中一些I/O口已經(jīng)作為專門(mén)的應(yīng)用。系統(tǒng)實(shí)現(xiàn)的目標(biāo)需要128個(gè)I/O口,即可編程控制器具備128個(gè)點(diǎn),這樣微處理器本身的I/O口無(wú)法滿足系統(tǒng)的需要,需要通過(guò)FPGA擴(kuò)展。

采用的FPGA型號(hào)為EP1K30TC208-3。該芯片具有208個(gè)引腳,可配置的I/O口最多達(dá)到147個(gè)。系統(tǒng)通過(guò)S3C44B0X總線進(jìn)行擴(kuò)展,這樣操作FPGA的I/O口就像操作ARM本身的I/O口一樣,操作起來(lái)非常的方便。FPGA與S3C44B0X的連接框圖如圖5:

ARM地址線、數(shù)據(jù)線與FPGA的地址線、數(shù)據(jù)線連接,由于FPGA每個(gè)存儲(chǔ)單元是16位,而ARM微處理器每次處理的是8位,因此地址線要偏離一位;FPGA的存儲(chǔ)單元映射到ARM中的Bank2;nOE、nWE分別是讀寫(xiě)信號(hào)線;TxD0用來(lái)下載FPGA工作需要的配置文件;PF2、PF3、TxD0共三根線提供FPGA啟動(dòng)工作需要的時(shí)序;SCLK是ARM與FPGA工作(讀、寫(xiě))需要的時(shí)鐘。

3.3 輸入輸出模塊的擴(kuò)展

可編程控制器輸入輸出模塊主要有數(shù)字量和模擬量輸入輸出。模擬量的輸入輸出即A/D、D/A是對(duì)象過(guò)程參數(shù)和PLC主機(jī)之間的接口。對(duì)象過(guò)程參數(shù)經(jīng)過(guò)傳感器轉(zhuǎn)換成標(biāo)準(zhǔn)的電量后,經(jīng)過(guò)A/D轉(zhuǎn)換器進(jìn)入PLC主機(jī)中;PLC主機(jī)經(jīng)過(guò)D/A數(shù)模轉(zhuǎn)換把數(shù)字量轉(zhuǎn)換成模擬量輸出。由于S3C44B0X微處理器內(nèi)部帶有了8路10位的A/D轉(zhuǎn)換器,在一些要求不是很高的控制領(lǐng)域,該轉(zhuǎn)換器可以滿足要求,因此不需擴(kuò)展。S3C44B0X內(nèi)部沒(méi)有D/A轉(zhuǎn)換器,所以采用的D/A轉(zhuǎn)換器為MAX5741進(jìn)行擴(kuò)展,該轉(zhuǎn)換器是4路10位,使用SPI接口進(jìn)行擴(kuò)展,其與微處理器的連接原理圖如圖6:

 

圖5  FPGA配置I/O口   圖6  D/A轉(zhuǎn)換器的擴(kuò)展[!--empirenews.page--]

3.4 CAN總線擴(kuò)展

系統(tǒng)使用CAN現(xiàn)場(chǎng)總線在各個(gè)模塊之間交換數(shù)據(jù)、通信,如:用戶使用手持編程器或PC機(jī)編寫(xiě)梯形圖或指令表程序后,通過(guò)CAN總線把程序傳輸?shù)絇LC主機(jī)中。由于微處理器S3C44B0X本身沒(méi)集成CAN控制器,需要單獨(dú)擴(kuò)展CAN控制器,采用的CAN控制器為MCP2510,收發(fā)器為PCA82C250。MCP2510工作電壓為3.3V,能夠直接與S3C44B0X微處理器I/O口相連。為進(jìn)一步提高系統(tǒng)抗干擾性,可在CAN控制器和收發(fā)器之間加光耦隔離6N137,原理圖如圖7:

 

圖7  CAN總線的擴(kuò)展

4程序設(shè)計(jì)及執(zhí)行過(guò)程

程序設(shè)計(jì)一個(gè)關(guān)鍵技術(shù)是編寫(xiě)梯形圖或指令表程序的解釋程序。根據(jù)指令的邏輯關(guān)系,分別給每條指令編寫(xiě)其對(duì)應(yīng)的子程序,當(dāng)CPU掃描到某條指令的編碼時(shí),就調(diào)用其子程序,進(jìn)行邏輯運(yùn)算,并把結(jié)果送到映像寄存器中。

程序執(zhí)行過(guò)程分為三個(gè)階段:輸入處理階段、程序執(zhí)行階段、輸出處理階段。如圖8所示。系統(tǒng)上電后,完成堆棧、存儲(chǔ)器、中斷等的初始化;把D數(shù)據(jù)寄存器值、部分M特殊輔助寄存器值等一些需要掉電保持的數(shù)據(jù),從EEPROM拷貝到SDRAM指定的地址中;把用戶編寫(xiě)的梯形圖或指令表程序從Nor Flash拷貝到SDRAM中以便提高系統(tǒng)的運(yùn)行速度。最后系統(tǒng)才真正開(kāi)始掃描用戶編寫(xiě)的梯形圖或指令表程序。

在輸入處理階段,CPU讀取所有輸入端子的狀態(tài),并把這些狀態(tài)內(nèi)容保存在輸入映像寄存器中;在程序執(zhí)行階段,CPU根據(jù)輸入狀態(tài)的信息,從梯形圖或指令表程序的第一步開(kāi)始執(zhí)行,當(dāng)CPU掃描到有關(guān)智能控制模塊時(shí),把智能控制模塊的一些設(shè)置值、參數(shù)送到FPGA中, FPGA在主機(jī)掃描程序的同時(shí),并行處理智能控制算法,并不斷的把運(yùn)算的結(jié)果送到控制參數(shù)存儲(chǔ)器中;在輸出處理階段,把輸出映像寄存器中的內(nèi)容送到輸出鎖存寄存器中,使輸出端口電平發(fā)生變化,執(zhí)行機(jī)構(gòu)動(dòng)作驅(qū)動(dòng)要控制的對(duì)象,最后把指針指向程序的第一步,使程序周而復(fù)始的工作,直到收到停止工作信號(hào)為止。

 

圖8  程序執(zhí)行過(guò)程

5 結(jié)論

本文創(chuàng)新點(diǎn):基于CAN現(xiàn)場(chǎng)總線、嵌入式微處理器S3C44B0X+FPGA設(shè)計(jì)的可編程控制器,采用了32位集成度高的嵌入式微處理器S3C44B0X為核心,簡(jiǎn)化了電路的設(shè)計(jì),提高了系統(tǒng)的可靠性及運(yùn)行速度;通過(guò)FPGA配置I/O口,解決了眾多芯片I/O口不足的問(wèn)題,滿足了工業(yè)控制領(lǐng)域的需求。同時(shí)在FPGA中實(shí)現(xiàn)的智能控制算法作為功能模塊嵌入PLC梯形圖程序中,主機(jī)執(zhí)行程序的同時(shí),FPGA也在并行完成智能控制算法的運(yùn)算,即不影響系統(tǒng)執(zhí)行的速度,又解決了傳統(tǒng)小型PLC不能嵌入智能算法的問(wèn)題。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉