熱敏打印機與高速數(shù)字處理器DSP的接口應(yīng)用
關(guān)鍵詞:微型熱敏打印機;DSP;接口;程序
隨著測試技術(shù)手段的不斷發(fā)展,各種測量儀器儀表已經(jīng)由最初的數(shù)碼管顯示發(fā)展到液晶屏全中文顯示,由最初的手工抄寫測量結(jié)果發(fā)展到自帶微型打印機,到目前為止,在各種測量型儀器儀表中,或大或小都有一個打印子系統(tǒng),打印機已經(jīng)成為打印測量結(jié)果和實現(xiàn)人機對話的重要工具。微型打印機簡稱微打,是針對通用打印機而言的,這種打印機具有體積小、操作電壓低等特點,是打印機家族中一個細小而特別的種類。目前微型打印機的應(yīng)用越來越廣泛,市場需求不斷擴大。其中的熱敏打印機由于具有噪聲小,打印速度快等優(yōu)點,正逐漸取代傳統(tǒng)嵌入面板的針式打印機。本文在介紹SPRT系列微型熱敏打印機原理的同時,給出了它與DSP的接口方法以及相應(yīng)的C語言程序。
SPRT系列微型熱敏打印機的打印命令與IBM及EPSON打印機命令標準相兼容;并行接口方式兼容PC打印機接口(并行接口相對串行接口接線復(fù)雜些,本文重點介紹);采用BUSY/ACK握手協(xié)議和IDC-25插座;串行接口方式兼容RS-232C接口?也采用握手方式(標志控制碼或X-ON/X-OFF協(xié)議)及D型9線孔型插座;打印頭壽命為 1*100000000行;打印寬度可以設(shè)置為16字/行、24字/行、32字/行或者40字/行;打印速度可達27mm/s。另外,該打印機的工作電壓為5V直流電源,但與針式打印機相比,其功耗比較大,平均耗流為2A、峰值耗流有時可高達5A。
1 并行接口打印機引腳功能介紹
SPRT系列并行熱敏打印機采用與CENTRONICS標準兼容的并行接口,接口插座為26線扁平電纜插頭或其替代品,其并行引腳插座接口的示意圖如圖1所示。
一般情況下,打印機兩排并行接口處總會有一面留有缺口,有缺口的那排就是奇數(shù)引腳排,無缺口的則是偶數(shù)排,其引腳號按順序從右向左數(shù),要千萬注意不要接錯線。各個引腳的功能如表1所列。
表1 打印機并行引腳接口說明
引腳號 | 引腳名稱 | 信號傳輸方向 |
說 明 |
1 | STB(片選) | 輸入 | 選通觸發(fā),上升沿時讀入數(shù)據(jù) |
3 | D0(數(shù)據(jù)線) | 輸入 | 數(shù)據(jù)信號線,分別代表并行數(shù)據(jù)線零位到第八位的信息。信號輸入為高電平,表示為邏輯“1”;輸入為低電平,表示為邏輯“0” |
5 | D1(數(shù)據(jù)線) | 輸入 | |
7 | D2(數(shù)據(jù)線) | 輸入 | |
9 | D3(數(shù)據(jù)線) | 輸入 | |
11 | D4(數(shù)據(jù)線) | 輸入 | |
13 | D5(數(shù)據(jù)線) | 輸入 | |
15 | D6(數(shù)據(jù)線) | 輸入 | |
17 | D7(數(shù)據(jù)線) | 輸入 | |
19 | ACK(應(yīng)答線) | 輸出 | 低電平表示數(shù)據(jù)已接收,且可接收下一組數(shù)據(jù) |
21 | BUSY(忙信號) | 輸出 | 高電平表示打印機“忙”,不能接收數(shù)據(jù) |
23 | PE(檢測紙) | 輸出 | 高電平表示打印機有紙,低電平表示無紙 |
25 | SEL(狀態(tài)線) | 輸出 | 一般接上拉電阻,表示打印機“在線” |
4 | ERR(狀態(tài)線) | 輸出 | 一般接上拉電阻,表示打印機無故障 |
2,6,8,26 | NC(空) | - | 可以不接,或者接上拉電阻。一般情況下,為防止干擾建議接入上拉電阻 |
10~24 | GND(電源地) | - | 接5V電源地。僅指10~24之間的偶數(shù)號引腳 |
2 熱敏打印機與DSP的接口設(shè)計
TI公司的16bit定點DSP芯片TMS320F206是一種低功耗DSP器件,采用改進的哈佛結(jié)構(gòu),有1條程序總線和3條數(shù)據(jù)總線,采用流水線操作。TMS320F206內(nèi)含高速并行的32bit算術(shù)邏輯單元、16×16bit并行硬件乘法器、存儲器、外設(shè)和專業(yè)化的指令集,特別適合于數(shù)字信號處理,并越來越多的應(yīng)用于工業(yè)控制領(lǐng)域和各類儀器儀表的開發(fā)設(shè)計。
本設(shè)計選用的微型熱敏打印機有8根數(shù)據(jù)線、1根電源線和3根信號控制接收線。為了增加信號的驅(qū)動能力,可在DSP與微型打印機之間接一個總線收發(fā)器芯片。由于該打印機的功耗非常大,因而最好給該收發(fā)器芯片單獨設(shè)計一組5V電源,以免干擾其它硬件電路,而造成DSP的不正當(dāng)復(fù)位。圖2是微型熱敏打印機與TMS320F206的典型接口電路。
3 軟件程序設(shè)計
各種類型的微型熱敏打印機雖然性能或者功能上略有差別,但幾乎都具有滿足CENTRONICS標準的并行接口,因而其對應(yīng)的軟件程序可適用于大多數(shù)打印機。下面介紹用C語言編寫的打印機初始化程序,該程序已經(jīng)仿真通過并應(yīng)用在測試儀器中。以下是等待程序,用于檢測打印機是否接收到數(shù)據(jù)。
ioport unsigned int port9000; /*設(shè)置片選I/O口地址*/
#define PrintPort port9000
void Wait(unsigned int f) /*等待程序開始*/
{ int i,k;
for (i=0,*f=0xffff;i<0x870;i++)
{ for(k=0;k<0x77f;k++)
{ asm(" BCND _PWait1,BIO");}}
/*檢測BUSY信號*/
} /*等待程序結(jié)束*/
打印機初始化程序,使打印機處于工作就緒狀態(tài)。
void Print_Init() /*打印機初始化程序開始*/
{ unsigned int f;
Wait(f); /*等待*/
PrintPort=0x001b;Wait(f); PrintPort=0x0040?Wait(f);
PrintPort=0x001b;Wait(f); PrintPort=0x0031? Wait(f);
PrintPort=0x0000;Wait(f); PrintPort=0x001b?Wait(f);
PrintPort=0x006c; Wait(f); PrintPort=0x002? Wait(f);
PrintPort=0x001b;Wait(f); PrintPort=0x0056? Wait(f);
PrintPort=0x0001;Wait(f); PrintPort=0x001b? Wait(f);
PrintPort=0x0055;Wait(f); PrintPort=0x0001?Wait(f);
PrintWait(&f); if(f==0)return;
} /*初始化程序結(jié)束*/
4 結(jié)束語
本文詳細介紹了SPRT系列并行接口微型熱敏打印機的引腳功能、接口設(shè)計和使用方法,該方法同樣可以作為單片機、微處理器及PC機等其它應(yīng)用系統(tǒng)和打印機接口電路設(shè)計的直接參考。筆者在GK-H型高壓開關(guān)特性精密測量儀以及BLC-H氧化鋅避雷器測試儀等電力測試設(shè)備中使用該方法連接熱敏打印機,取得了很好的打印效果。