曾華鵬,喬 佳,周曦國,湯 莉,賀 陽
(1.天津中德應(yīng)用技術(shù)大學(xué) 智能制造學(xué)院,天津 300350;2.天津師范大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,天津 300387;3.天津財(cái)經(jīng)大學(xué)理工學(xué)院,天津 300222)
我國制造業(yè)正面臨著環(huán)境不斷變化的挑戰(zhàn),全球化市場(chǎng)和勞務(wù)競(jìng)爭(zhēng)的加劇,對(duì)制造業(yè)在提高產(chǎn)品質(zhì)量和減少資源消耗、提高生產(chǎn)效益和降低生產(chǎn)成本等方面都提出了更高的要求,基于物料標(biāo)志的生產(chǎn)過程可視化、 智能化和全局優(yōu)化成為制造業(yè)關(guān)注的重點(diǎn).因此,物聯(lián)網(wǎng)技術(shù)在制造領(lǐng)域的應(yīng)用和滲透是先進(jìn)制造發(fā)展的必然結(jié)果[1].
當(dāng)前電子生產(chǎn)線的芯片量產(chǎn)編程環(huán)節(jié),大部分采用離線編程的方式,在操作過程中,容易出現(xiàn)誤將不正確的固件寫入芯片的問題.同時(shí),現(xiàn)有量產(chǎn)編程器存在編程速度較慢,從而影響產(chǎn)能的問題[2].針對(duì)這些問題,本文利用專家系統(tǒng)和Round-Robin 算法設(shè)計(jì)了一款基于物聯(lián)網(wǎng)架構(gòu)的芯片高速量產(chǎn)編程系統(tǒng),該系統(tǒng)可根據(jù)工藝要求實(shí)現(xiàn)固件的自動(dòng)更新,從而提高生產(chǎn)的自動(dòng)化程度,這對(duì)提高芯片生產(chǎn)線的生產(chǎn)能力和增加產(chǎn)量具有非常重要的意義[3].
整體系統(tǒng)基于物聯(lián)網(wǎng)架構(gòu)實(shí)現(xiàn),分為感知層、網(wǎng)絡(luò)層和應(yīng)用層[4].應(yīng)用層為基于Niagara 平臺(tái)(Tridium公司)開發(fā)的服務(wù)器端程序,網(wǎng)絡(luò)層為基于JACE8000(Tridium 公司)的協(xié)議轉(zhuǎn)換器,感知層為基于STM32實(shí)現(xiàn)的編程器.系統(tǒng)結(jié)構(gòu)如圖1 所示.

圖1 系統(tǒng)結(jié)構(gòu)Fig.1 Architecture of system
服務(wù)器端程序基于Niagara 平臺(tái)開發(fā).Niagara 是一種應(yīng)用框架,特別適用于智能設(shè)備的相關(guān)應(yīng)用,包括設(shè)備連接到企業(yè)級(jí)的應(yīng)用、支持互聯(lián)網(wǎng)的產(chǎn)品和基于互聯(lián)網(wǎng)自動(dòng)化系統(tǒng)的開發(fā)[5].服務(wù)器端程序根據(jù)工藝要求,自動(dòng)選擇待編程芯片的型號(hào),匹配相應(yīng)的固件,同時(shí)根據(jù)芯片型號(hào)解析出編程所需的參數(shù)(編程接口類型、同時(shí)進(jìn)行編程的芯片個(gè)數(shù)、芯片最高編程時(shí)鐘頻率、芯片的容量、編程電壓等),并將數(shù)據(jù)發(fā)送至編程器.
位于網(wǎng)絡(luò)層的JACE8000 是Tridium 公司開發(fā)的一款新型的多協(xié)議轉(zhuǎn)換器,它以嵌入式系統(tǒng)為平臺(tái),結(jié)合物聯(lián)網(wǎng),將管理人員發(fā)送的控制命令轉(zhuǎn)換成不同的協(xié)議,發(fā)送給工業(yè)設(shè)備,使不同協(xié)議的設(shè)備可以實(shí)現(xiàn)統(tǒng)一管理[6].本系統(tǒng)中的JACE8000 負(fù)責(zé)將服務(wù)器端的TCP/IP 協(xié)議轉(zhuǎn)換成編程器能夠識(shí)別的Modbus協(xié)議.
位于感知層的編程器通過Modbus 獲取來自服務(wù)器端的信息,并對(duì)芯片進(jìn)行編程.
實(shí)踐表明,降低瓶頸工時(shí),使各工位生產(chǎn)同步化是提高流水線平衡率、滿足產(chǎn)能要求的關(guān)鍵[7].芯片編程速度和時(shí)間(特別是大容量芯片)直接影響著電子產(chǎn)品的產(chǎn)能.芯片編程速度主要取決于芯片所能承受的編程時(shí)鐘的最高頻率和編程電壓[8].不同型號(hào)的芯片,其供電電壓與對(duì)應(yīng)的最高編程速度不同.為最大限度提高編程速度,應(yīng)采用最高頻率所對(duì)應(yīng)的供電電壓并以最高時(shí)鐘頻率對(duì)芯片進(jìn)行編程.部分芯片的供電電壓和最高時(shí)鐘頻率見表1.

表1 芯片編程特性Tab.1 Programming characters of chips
對(duì)于單個(gè)芯片的編程,采用頁編程的方式進(jìn)行,編程總時(shí)間為

其中:P 為頁數(shù);TP為每個(gè)芯片一頁編程所需要的時(shí)間,等于每一頁的大小除以編程速度;SP為芯片每一頁的容量;FCLK為芯片編程時(shí)鐘頻率,可由相關(guān)技術(shù)手冊(cè)查詢;TWR為頁編程等待時(shí)間.對(duì)于單個(gè)芯片的頁編程方式,本文采用專家系統(tǒng),確保系統(tǒng)以最優(yōu)的編程電壓和頻率進(jìn)行編程,這將大大提高芯片的編程速度.
對(duì)于多個(gè)芯片的編程,以頁編程的方式,每頁編程結(jié)束后必須等待一個(gè)預(yù)定義的時(shí)間TWR,才能進(jìn)行下一頁的編程.因此,本文利用Round-Robin 算法,使系統(tǒng)在第1 個(gè)芯片第1 頁編程完畢后,即切換到下一個(gè)芯片的第1 頁進(jìn)行編程,以此類推,只需確保輪轉(zhuǎn)到第1 個(gè)芯片第2 頁開始編程時(shí),所用時(shí)間不小于該芯片對(duì)應(yīng)的TWR即可,即

其中:n 為并行編程芯片的個(gè)數(shù);TIdle為對(duì)應(yīng)輪次需空閑等待的時(shí)間.采用Round-Robin 算法的并行編程,每一輪(對(duì)所有芯片的同一頁進(jìn)行編程)的總時(shí)間為:

其中:Tp1為第1 個(gè)芯片頁編程時(shí)間;Tpr為第2 個(gè)芯片到第n 個(gè)芯片的頁編程總時(shí)間.若Tpr>TWR,則TIdle=0,否則TIdle=TWR-Tpr.多芯片并行編程的總時(shí)間為

系統(tǒng)硬件采用的芯片為意法半導(dǎo)體的STM32F103RCT6 單片機(jī),STM32 單片機(jī)具有豐富的外設(shè)功能和數(shù)據(jù)處理能力[9].硬件結(jié)構(gòu)如圖2 所示.
整個(gè)系統(tǒng)由電源電路模塊、 信號(hào)切換電路模塊、編程信號(hào)電路模塊、按鍵輸入模塊和RS485 通訊模塊構(gòu)成.電源模塊負(fù)責(zé)給單片機(jī)和編程夾具供電;信號(hào)切換電路可以將芯片編程所需的信號(hào)(數(shù)據(jù)信號(hào)、時(shí)鐘信號(hào)和電源信號(hào)等)切換到多個(gè)編程夾具中的任意一個(gè);RS485 通訊電路負(fù)責(zé)和其他設(shè)備進(jìn)行Modbus通訊;按鍵電路模塊負(fù)責(zé)讀取按鍵輸入.

圖2 硬件結(jié)構(gòu)Fig.2 Architecture of hardware
電源電路基于低壓差電壓調(diào)節(jié)器LM1117 和低噪聲LDO 調(diào)節(jié)器MIC5209 實(shí)現(xiàn),其原理如圖3 所示.

圖3 電源電路原理Fig.3 Schematic of power supply
其中:為滿足不同芯片所需的編程電壓,采用3個(gè)跳線接插頭DIP1、DIP2 和DIP3.不同芯片對(duì)應(yīng)不同的編程制具,當(dāng)編程器與編程制具連接時(shí),3 個(gè)接插頭的其中一個(gè)將被短接,使待編程芯片獲得最高編程時(shí)鐘頻率所對(duì)應(yīng)的編程電壓.
單片機(jī)輸出數(shù)據(jù)信號(hào)、時(shí)鐘信號(hào)、GND 和編程電壓.輸出的4 個(gè)信號(hào)通過信號(hào)切換電路切換到多個(gè)待編程芯片中的任意一個(gè).信號(hào)切換電路原理如圖4所示.
信號(hào)切換電路基于單端多通道8 路開關(guān)CD4051實(shí)現(xiàn),CD4051 的優(yōu)點(diǎn)是能選通模擬信號(hào)和實(shí)現(xiàn)多路信號(hào)的選擇和分配[10].通過設(shè)置A、B、C 引腳的高低電平,可使COM 端與CH0~CH7 的其中一個(gè)引腳連通起來.CD4051 的INH 引腳是使能端,可用來控制CD4051 使能.
單片機(jī)通過2 個(gè)IO(U10.3 和U11.3)模擬芯片對(duì)所需信號(hào)(數(shù)據(jù)信號(hào)和時(shí)鐘信號(hào))進(jìn)行編程,同時(shí)輸出GND 信號(hào)和電壓信號(hào).
如果編程夾具板的夾具不多于8 個(gè),則可以采用2 個(gè) CD4051 實(shí)現(xiàn),通過控制 2 個(gè) CD4051 的 INH 和A、B、C 引腳,可以實(shí)現(xiàn)最多16 路的切換,見圖4 的第1 個(gè)電路圖.
RS485 通訊電路基于 RS485 隔離收發(fā)模塊TD301D485 實(shí)現(xiàn),其電路原理如圖5 所示.

圖4 信號(hào)切換電路原理Fig.4 Schematic of signal switch

圖5 RS485 電路原理Fig.5 Schematic of RS485
圖5 中TXD 和RXD 引腳連接到單片機(jī)的TX 和RX,單片機(jī)通過一個(gè)IO 連接CON 端,當(dāng)IO 為低電平時(shí),處于發(fā)送狀態(tài),當(dāng)IO 為高電平時(shí),處于接收狀態(tài).
編程器從服務(wù)器端接收與芯片編程有關(guān)的參數(shù),包括芯片型號(hào)、 同時(shí)進(jìn)行編程的芯片個(gè)數(shù)等,同時(shí)從服務(wù)器接收待寫入芯片的固件.編程器總體流程如圖6 所示.

圖6 編程器總體流程Fig.6 Whole flow of programmer
軟件設(shè)計(jì)基于專家系統(tǒng),主要由人機(jī)接口、 推理機(jī)、解釋器、知識(shí)庫及其管理系統(tǒng)、數(shù)據(jù)庫及其管理系統(tǒng)和知識(shí)獲取機(jī)構(gòu)組成[11].知識(shí)庫是專家系統(tǒng)的重要組成部分,負(fù)責(zé)存儲(chǔ)專家解決特定問題的知識(shí),采用某種知識(shí)表示方法編輯或自動(dòng)生成某種表示形式[12].本系統(tǒng)的知識(shí)庫中存儲(chǔ)芯片編程相關(guān)的知識(shí),不同的芯片型號(hào),其知識(shí)庫中的編程參數(shù)類型和個(gè)數(shù)是相同的,參數(shù)的數(shù)值存在差異.以24C512 芯片為例,其知識(shí)庫的具體參數(shù)和數(shù)值見表2.

表2 24C512 芯片編程知識(shí)庫Tab.2 Programming knowledge base of chip 24C512
Round-Robin 算法是一個(gè)應(yīng)用廣泛的經(jīng)典調(diào)度算法[13].首先計(jì)算出每頁的編程時(shí)間,進(jìn)而確定每一輪的空閑等待時(shí)間,最后采用Round-Robin 算法對(duì)多個(gè)芯片進(jìn)行編程,并且在每一輪中都等待充足的時(shí)間,以確保所有芯片的每一頁編程結(jié)束后都能夠至少等待一個(gè)不少于TWR的時(shí)間,算法流程如圖7 所示.

圖7 Round-Robin 算法流程Fig.7 Flow of Round-Robin algorithm
利用MATLAB 進(jìn)行仿真計(jì)算,以24C512 為例,圖8 給出了不同編程時(shí)鐘頻率下,單個(gè)芯片和并行芯片個(gè)數(shù)為2、4、8 的傳統(tǒng)算法和本文算法的總編程時(shí)間.

圖8 24C512 的仿真結(jié)果Fig.8 Simulation results of 24C512
由圖8 可見:對(duì)于單個(gè)芯片編程(并行芯片個(gè)數(shù)為1),提高編程時(shí)鐘頻率并不能成比例縮短編程時(shí)間,其原因在于雖然編程速度提高,但編程等待時(shí)間無法規(guī)避;而對(duì)于多個(gè)芯片的并行編程,由于采用了Round-Robin 算法,隨著編程頻率的提高,以及并行編程芯片個(gè)數(shù)的增加,本文算法的編程總時(shí)間與傳統(tǒng)算法相比大幅減少.
本文設(shè)計(jì)的編程器實(shí)物如圖9 所示.
編程器包括上半部和下半部.上半部為編程制具,可根據(jù)實(shí)際工藝需求放置不同的編程制具,如圖9(a)所示;下半部為編程器主體,通過連接器與編程制具進(jìn)行連接,如圖9(b)所示.

圖9 編程器實(shí)物Fig.9 Physical programmer
在實(shí)際測(cè)試中,以 24CXX 系列、93CXX 系列和AM29LVXX 系列芯片為測(cè)試對(duì)象,按100 kHz 的編程時(shí)鐘頻率以預(yù)定次數(shù)連續(xù)進(jìn)行一對(duì)四編程,取編程時(shí)間平均值,部分測(cè)試結(jié)果如表3 所示.

表3 部分測(cè)試結(jié)果Tab.3 Part of test results
由測(cè)試結(jié)果可見,本文算法的編程器所用時(shí)間均低于傳統(tǒng)算法,而且,由于本文算法是按塊/頁寫入,回讀校驗(yàn)也是按塊/頁進(jìn)行,一旦出現(xiàn)寫入錯(cuò)誤能夠及時(shí)發(fā)現(xiàn),并針對(duì)該塊/頁進(jìn)行擦除和重新寫入,因此本文算法的錯(cuò)誤率遠(yuǎn)低于傳統(tǒng)算法.
本文提出了一種物聯(lián)網(wǎng)架構(gòu)的基于專家系統(tǒng)和Round-Robin 算法的芯片高速量產(chǎn)編程器系統(tǒng)的設(shè)計(jì)方案.經(jīng)過仿真實(shí)驗(yàn)與實(shí)際測(cè)試,所設(shè)計(jì)的算法和編程器可有效縮短編程時(shí)間并大大降低錯(cuò)誤率,從而可提高電子生產(chǎn)線的自動(dòng)化水平.