江慧娜,王一鈞,王淑鴻,孫慧瑜
(北京石油化工學(xué)院 信息技術(shù)教學(xué)與實(shí)驗(yàn)中心,北京 102617)
提花機(jī)是實(shí)現(xiàn)織物經(jīng)紗提升控制的裝置,通過控制經(jīng)紗提升與否從而形成織物圖案。傳統(tǒng)的機(jī)械式提花機(jī)需要將設(shè)計(jì)好的圖案變成控制織機(jī)的紋版,而紋版通常采用由沖壓機(jī)在硬紙板上打孔來存儲(chǔ)數(shù)據(jù)的方式獲得,該環(huán)節(jié)非常耗時(shí)且會(huì)造成紋版的大量消耗。電子提花機(jī)則取消了紋版的制作過程,可根據(jù)由紋織CAD軟件設(shè)計(jì)出的代表織物花型的數(shù)字化處理文件控制相關(guān)經(jīng)紗的動(dòng)作,配合提針結(jié)構(gòu)實(shí)現(xiàn)高速無紋版提花功能。相對(duì)于機(jī)械式提花裝置而言,電子提花裝置可顯著提高生產(chǎn)效率[1-2]。在電子提花機(jī)中,需要將上位機(jī)設(shè)計(jì)的花型數(shù)據(jù)文件寫入到控制器中,花型數(shù)據(jù)的正確寫入和有效存儲(chǔ)決定了提針機(jī)構(gòu)能否完成預(yù)定花型編織功能。本設(shè)計(jì)選用STC公司生產(chǎn)的8位低功耗高性能CMOS微控制器STC89C52RC作為主控芯片[3],采用串行通訊和FLASH存儲(chǔ)實(shí)現(xiàn)主控制器與上位機(jī)間的花型數(shù)據(jù)傳輸及存儲(chǔ),能夠滿足提花機(jī)生產(chǎn)過程中花型數(shù)據(jù)的可靠傳輸及存儲(chǔ)要求。
電子提花控制系統(tǒng)總體構(gòu)成如圖1。圖中虛線框內(nèi)即為花型數(shù)據(jù)傳輸及儲(chǔ)存模塊,MCU1處理器采用串行通訊方式將上位機(jī)設(shè)計(jì)好的花型文件寫入FLASH存儲(chǔ)模塊,生產(chǎn)過程中MCU2處理器讀取FLASH存儲(chǔ)模塊中花型數(shù)據(jù),再根據(jù)該數(shù)據(jù)文件控制選針器驅(qū)動(dòng)模塊,有選擇地驅(qū)動(dòng)電磁閥線圈,電磁閥吸,則經(jīng)紗提升;電磁閥不吸,則經(jīng)紗不提升??棛C(jī)據(jù)此即可根據(jù)花型數(shù)據(jù)文件所提供的信息織出所需的提花花型,完成整個(gè)提花織造過程。本設(shè)計(jì)將針對(duì)圖1所示虛線框內(nèi)花型數(shù)據(jù)傳輸及存儲(chǔ)部分的軟硬件設(shè)計(jì)實(shí)現(xiàn)進(jìn)行介紹。
圖1 提花機(jī)控制系統(tǒng)框圖Fig.1 Structure diagram of the control system in jacquard machine
花型數(shù)據(jù)傳輸及存儲(chǔ)系統(tǒng)硬件部分主要由單片機(jī)模塊、RS232串口通訊電平轉(zhuǎn)換模塊、FLASH存儲(chǔ)模塊及其他輔助部分電路組成。
本設(shè)計(jì)中單片機(jī)選用8位低功耗高性能CMOS微控制器STC89C52RC,在實(shí)現(xiàn)單片機(jī)與上位機(jī)之間的串行通訊時(shí),由于單片機(jī)給出的信號(hào)TXD/RXD為TTL電平,而上位機(jī)端串行通訊口為RS232電平,故需采用MAX232芯片實(shí)現(xiàn)兩者間的電平轉(zhuǎn)換[4]。由于RS232電平較高,接通時(shí)產(chǎn)生的高瞬時(shí)電涌可能會(huì)導(dǎo)致芯片損毀,所以在使用中應(yīng)盡量避免熱插拔。
圖2 RS232電平轉(zhuǎn)換及單片機(jī)部分電路Fig.2 RS232 level conversion unit and microcontroller unit circuit
Flash存儲(chǔ)器具有低功耗、容量大且速度快的優(yōu)點(diǎn),同時(shí)也具備很強(qiáng)的電磁抗干擾能力與抗震能力[5],因而在嵌入式開發(fā)領(lǐng)域里作為數(shù)據(jù)存儲(chǔ)設(shè)備得到廣泛應(yīng)用。在本設(shè)計(jì)中花型數(shù)據(jù)文件的存儲(chǔ)也采用非易失性 Flash存儲(chǔ)器來完成,由于其斷電后信息不會(huì)丟失,使得系統(tǒng)再次開機(jī)后可不需要經(jīng)過上位機(jī)而直接從存儲(chǔ)模塊調(diào)出加工以方便生產(chǎn)。所選存儲(chǔ)空間的大小由花型文件的經(jīng)紗和緯紗數(shù)決定,根據(jù)提花機(jī)的實(shí)際工作需要,要求存儲(chǔ)系統(tǒng)能滿足約2MB的花型數(shù)據(jù)存儲(chǔ)的生產(chǎn)要求,預(yù)留一定的擴(kuò)展升級(jí)空間,擬定存儲(chǔ)系統(tǒng)存儲(chǔ)空間為4MB。綜合考慮存儲(chǔ)器讀取速度,穩(wěn)定性以及經(jīng)濟(jì)型指標(biāo),選擇SST公司推出的基于SuperFlash技術(shù)的NOR Flash系列存儲(chǔ)器SST39SF040作為存儲(chǔ)芯片,該存儲(chǔ)器屬于并行閃速存儲(chǔ)器系列,適用于需要程序在線寫入或大容量、非易失性數(shù)據(jù)重復(fù)存儲(chǔ)的場(chǎng)合。由于該存儲(chǔ)器單片容量為512KB,故本設(shè)計(jì)中采用8片SST39SF040以滿足4MB的存儲(chǔ)空間需求。
由SST39SF040存儲(chǔ)器構(gòu)成的存儲(chǔ)模塊驅(qū)動(dòng)電路如圖3所示(圖中僅給出兩片SST39SF040的接口電路),當(dāng)需要進(jìn)行花型存儲(chǔ)時(shí),單片機(jī)將控制信號(hào)P1.6置高,使能譯碼器74HC138輸出,控制信號(hào)P1.3~P1.5的譯碼輸出結(jié)果Y0~Y7控制八片SST39SF040的片選端CE,選擇指定Flash存儲(chǔ)器進(jìn)行讀寫操作。STC89C52RC單片機(jī)的數(shù)據(jù)端口P0、讀寫控制端口WR/RD可直接與SST39SF040的相對(duì)應(yīng)端口直接相連。至于地址端口,由于該Flash存儲(chǔ)芯片容量為512KB,對(duì)應(yīng)地址線為19位,超過了單片機(jī)的可尋址范圍,設(shè)計(jì)中單片機(jī)采用P1.2~P1.0作為頁面地址選擇位與存儲(chǔ)器的高3位地址端口A18~A17連接,同時(shí)由于該型單片機(jī)數(shù)據(jù)端口和地址端口低8位為復(fù)用端口,故在發(fā)送數(shù)據(jù)之前須用74HC573芯片將低8位地址鎖存。
系統(tǒng)軟件設(shè)計(jì)部分主要包含單片機(jī)Flash存儲(chǔ)讀寫程序?qū)崿F(xiàn)、串口通訊實(shí)現(xiàn)以及上位機(jī)軟件界面設(shè)計(jì)。本文主要介紹Flash存儲(chǔ)讀寫及上位機(jī)軟件界面設(shè)計(jì)實(shí)現(xiàn)。
3.1.1 SST39SF040存儲(chǔ)器指令序列
SST39SF040的軟件指令包含普通讀指令和命令指令兩大類。普通讀指令與RAM的讀操作類似,當(dāng)OE和CE信號(hào)同時(shí)為低電平時(shí),即可從芯片讀取數(shù)據(jù);芯片命令指令包括芯片ID識(shí)別、字節(jié)編程、扇區(qū)擦除以及整片擦除等。所有這些操作均可由如表1所列的軟件指令序列來實(shí)現(xiàn),其中BA為待編程字節(jié)的地址,Data為字節(jié)編程數(shù)據(jù),SAX為待擦除扇區(qū)的地址。所有指令中地址位只有低15位有效,高4位可任意設(shè)置[6]。
圖3 存儲(chǔ)模塊驅(qū)動(dòng)電路Fig.3 Driver circuit of storage unit
SST39SF040的軟件操作命令序列實(shí)際上是由一個(gè)或多個(gè)總線寫操作組成的。以SST39SF040的扇區(qū)擦除為例,其操作過程包括3個(gè)步驟:首先開啟擦除方式,用表1中給出的第1至第5周期的總線寫操作來實(shí)現(xiàn);然后裝載扇區(qū)擦除命令(30H)和待擦除扇區(qū)的地址,用其對(duì)應(yīng)的第6周期的總線寫操作來實(shí)現(xiàn);最后進(jìn)行內(nèi)部擦除,擦除時(shí)間最長為25 ms。
表1 SST39SF040存儲(chǔ)芯片軟件指令序列Tab.1 Software instruction sequence of storage chip SST39SF040
3.1.2 SST39SF040存儲(chǔ)部分軟件設(shè)計(jì)
SST39SF040存儲(chǔ)部分軟件設(shè)計(jì)主要工作為編寫單片機(jī)對(duì)該Flash存儲(chǔ)的操作功能實(shí)現(xiàn)代碼,包括ID讀取、扇區(qū)或整片擦除以及字節(jié)編程等。下面給出用C語言實(shí)現(xiàn)的ID讀取程序代碼,其他操作功能代碼可參照表1中軟件指令序列編寫。
//讀FLASH ID的函數(shù),
//入口參數(shù):FLASH的manuf_ID及device_ID,出口參數(shù)返回1或0
uchar Read_Id(uchar manuf_ID,uchar devi_ID)
{
Sst39vf040_Ce=1;
XBYTE[0x5555]=0xAA;
XBYTE[0x2AAA]=0x55;
XBYTE[0x5555]=0x90;
manufacturer_id=XBYTE[0x9000];
device_id=XBYTE[0x9001];
if((manufacturer_id==manuf_ID)&&(device_id==devi_ID))
return 1;
else
return 0;
XBYTE[0x5555]=0xAA;
XBYTE[0x2AAA]=0x55;
XBYTE[0x5555]=0xF0;
Delay10us();
Sst39vf040_Ce=0;
}
上位機(jī)軟件設(shè)計(jì)的主要功能為將紋織CAD軟件生成的花型文件通過串口通訊的方式將文件傳輸至單片機(jī),與此同時(shí),為保證數(shù)據(jù)傳輸?shù)目煽啃?,要求?duì)寫入到Flash存儲(chǔ)器中花型數(shù)據(jù)進(jìn)行校驗(yàn)。上位機(jī)程序采用C#語言編寫,該程序中可使用 MSComm(Microsoft Communication Control)控件與單片機(jī)通信[7],設(shè)計(jì)出的上位機(jī)軟件界面如圖4所示。
圖4 上位機(jī)軟件界面Fig.4 Interface chart of the control system
為了提高生產(chǎn)效率,必須在保證花型數(shù)據(jù)的正確傳輸和可靠存儲(chǔ)的同時(shí)盡可能縮短數(shù)據(jù)傳輸及校驗(yàn)環(huán)節(jié)總體時(shí)間。為避免因個(gè)別字節(jié)數(shù)據(jù)傳輸錯(cuò)誤導(dǎo)致校驗(yàn)失敗而須重新寫入所有數(shù)據(jù)的情況,程序設(shè)計(jì)中采用分批傳送和傳送過程中增加CRC校驗(yàn)字節(jié)的方式來保證數(shù)據(jù)有效性。具體實(shí)現(xiàn)方式為:當(dāng)啟動(dòng)寫入程序時(shí),首先將讀取到的花型文件按照99個(gè)字節(jié)一組進(jìn)行拆分后存入指定的花型數(shù)組中,同時(shí)對(duì)每組數(shù)據(jù)進(jìn)行CRC16校驗(yàn),校驗(yàn)生成的字節(jié)也存入指定校驗(yàn)數(shù)組;文件分析及校驗(yàn)完成后,將由99個(gè)花型數(shù)據(jù)和1個(gè)校驗(yàn)字節(jié)數(shù)據(jù)傳遞給單片機(jī),單片機(jī)接收到連續(xù)100個(gè)串口通訊數(shù)據(jù)后,對(duì)前99個(gè)花型數(shù)據(jù)也啟動(dòng)CRC16校驗(yàn),將校驗(yàn)結(jié)果與傳遞過來的校驗(yàn)字節(jié)進(jìn)行對(duì)比,結(jié)果一致則將該組花型數(shù)據(jù)寫入Flash存儲(chǔ)并給PC返回參數(shù)正確傳輸標(biāo)志,要求進(jìn)行下一組數(shù)據(jù)傳輸;反之則給PC返回?cái)?shù)據(jù)傳輸失敗標(biāo)志,要求重新傳送該組數(shù)據(jù)。
設(shè)計(jì)的基于低功耗高性能CMOS微控制器STC89C52RC和并行閃存SST39SF040的電子提花機(jī)花型傳輸和存儲(chǔ)系統(tǒng),采用串口通訊方式實(shí)現(xiàn)了與上位機(jī)的數(shù)據(jù)交互,并通過數(shù)據(jù)分段傳輸和增加CRC校驗(yàn)的方式保證了數(shù)據(jù)的可靠傳輸和正確存儲(chǔ)。該花型數(shù)據(jù)傳輸和存儲(chǔ)系統(tǒng)配合主控制器在某型電子提花機(jī)上的使用結(jié)果表明,該存儲(chǔ)系統(tǒng)工作可靠,能夠滿足實(shí)際應(yīng)用需求。
[1]李祥.電子提花技術(shù)與產(chǎn)品開發(fā)[M].北京:中國紡織出版社,2000.
[2]蔡重凱.基于ARM的電子提花機(jī)控制器設(shè)計(jì)[D].杭州:浙江大學(xué),2006.
[3]何偉剛,吳其琪.煤礦井下小型無線定位器的設(shè)計(jì)[J].煤礦機(jī)械,2013,34(10):154-156.HE Wei-gang,WU Qi-qi.Design of small coal mine wireless locator[J].Coal Mine Machinery,2013,30(10):154-156.
[4]向紅軍,雷彬.PC與便攜式儀表的串行通訊及數(shù)據(jù)處理程序設(shè)計(jì)[J].電子測(cè)量技術(shù),2007,30(1):20-22.XIANG Hong-jun,LEI Bin.Design of serial port communication and data processing between PC and portable meter[J].Eelectonic Measurement Technology,2007,30(1):20-22.
[5]鄭文靜,李明強(qiáng).Flash存儲(chǔ)技術(shù) [J].計(jì)算機(jī)研究與發(fā)展,2010,47(4):716-726.ZHENG Wen-jing,LI Ming-qiang.Flash storage technology[J].Journal of Computer Research and Development,2010,47(4):716-726.
[6]萬方,汪世明.大容量NOR Flash與8位單片機(jī)的接口設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(8):25-27.WAN Fang,WANG Shi-ming.Design of Interface between large capacity NOR flash and 8-bit microcontroller[J].Microcontroller&Embedded System,2007(8):25-27.
[7]章輝,葉建芳.基于MSComm控件串口通信的實(shí)現(xiàn)[J].電子測(cè)量技術(shù),2011,34(8):126-129.ZHANG Hui,YE Jiang-fang.Realization of serial communica based on MSComm controls[J].Eelectonic Measurement Technology,2011,34(8):126-129.