本文主要分析了8096系列中的在設備中的人機交互界面接口應用問題, 通過實例詳細介紹了該類單片機與觸摸屏芯片的軟、硬件接口的應用技巧, 分析了其工作特性, 指出在應用中需注意的問題, 并給出了觸摸芯片的部分程序。
隨著科學技術的日新月異, 人類對文明生活需求的進步, 帶來對電能的需求越來越高, 也帶來了對電力系統(tǒng)的設備有更高的要求, 由此電力系統(tǒng)配電變壓器的功能及檢測設備受到各方面的密切關注。在市場上各種各樣的電力檢測設備不斷翻新, 其功能也向實用性、高科技性方向發(fā)展, 但配電變壓器具有觸摸方式的人機友好界面功能及檢測的設備很少有報道, 為此, 在經過多方面的調研, 我們提出研制使用觸摸方式、具有GPRS無線通信功能的配電變壓器智能檢測設備的任務。該設備在滿足配電功能要求的前提下, 采用觸摸顯示方式提高檢測設備的可操作性, 使用GPRS無線通信提高設備的先進性、滿足現代信息社會的管理需求, 使其具有一定獨特優(yōu)勢, 能夠占領一定的市場領域。
1 系統(tǒng)設計
系統(tǒng)的核心是采用先進的INTEL96 系列16 位單片機80196, 配以液晶顯示觸摸屏、大規(guī)模門陣列邏輯集成電路xilinx95144, 通過串口驅動電路MAX232外接GPRS模塊等, 組成結構簡單、功能完整、擴充性強、布局合理, 使用芯片少, 體積小, 具有高可靠性和保密特性的設備系統(tǒng), 原理圖如圖1所示。
圖1 系統(tǒng)原理圖
1. 1 各功能模塊主要作用
( 1) CPU80196在系統(tǒng)中主要承擔著控制中心及16位數據的算術、邏輯運算的任務, 該單片機具有豐富的軟硬件資源及運行速度快的指令系統(tǒng), 非常適合于電力系統(tǒng)的儀表設計。
( 2) 大規(guī)模邏輯電路芯片X ilinx95144主要完成: 地址鎖存、數據總線驅動、控制信號總線驅動及邏輯電平轉換、片選信號發(fā)生等, 它有144個宏單元3200 個邏輯門, 100個管腳,81數據輸入輸出腳, 4個在線編程腳, 可以完成10000次的在線編程。
( 3) MAX232串口驅動: 完成串口電平TTL至RS232轉換功能。
( 4) GPRS模塊: 是一種新型的移動數據通信業(yè)務, 在移動用戶和數據網絡之間提供一種連接, 給移動用戶提供高速無線IP服務。它采用完全透明數據傳輸, 永遠在線, 按流量計費, 克服了通訊距離短, 性能不穩(wěn)定的缺點, 真正實現全國無縫覆蓋, 特別適用于無人看守的區(qū)域。
( 5) 27512EPROM 程序存儲器, 提供64KByte 的程序存儲空間, 主要是存放系統(tǒng)程序。
( 6) 62256靜態(tài)RAM 數據存儲器, 提供64KBy te的數據存儲空間, 主要是存放采集的數據, 自帶電池, 可以保證數據在掉電的情況下不丟失。
( 7) DS1302日歷芯片可以根據設置自動完成年月日時份秒的計算, 并可以實現鬧鐘, 它主要使系統(tǒng)能夠定時采集數據。
( 8) CAN屬于總線式串行通訊網絡, 具有很強的糾錯能力, 支持差分收發(fā), 因而適合高噪聲環(huán)境, 而且傳輸距離比較遠。在系統(tǒng)中我們采用了SJA1000 芯片, 通過正確連接和設置的, 達到CAN 總線物理層和數據鏈路層的所有功能的自動完成。
( 9) 開關驅動電路: 主要是提供給各種開關電源、交直流電機調速系統(tǒng)的電壓與電流。在系統(tǒng)中我們采用數字電路與模擬電路的結合完成。
( 10)液晶顯示與觸摸屏: 提供人機交互友好界面, 我們選擇了臺灣AM PIRE 公司產DG - 32240 - 27 - SNCW -HCDTC液晶顯示觸摸屏, 具有320 ?? 240顯示象素點, 160 ×110mm 觸摸大小, 其顯示部分控制芯片是SED1335, 觸摸部分控制芯片是ADS7843。
1. 2 系統(tǒng)調試
在系統(tǒng)的調試中, 一切功能與電氣指標都能達到預先設計的要求, 但幾次出現觸摸屏與單片機之間指令不執(zhí)行, 甚至燒壞了觸摸屏中的芯片ADS7843的問題。
2 硬件設計分析
根據硬件連接, 使用的單片機P3、P4口通過X ilinx95144與液晶顯示相連, 觸摸屏與單片機P1口直接連接, 三者工作電壓均為廠商推薦典型值5V。
2. 1 80196KB單片機結構
80196KB 是INTEL公司繼8位單片機以后推出的16 位單片機MCS_96 系列的產品之一,它與8位單片機相比提高了控制系統(tǒng)的實時性, 與現在的32位相比是真正意義上的單片機, 特別適用于各類自動控制系統(tǒng)。它的內部結構采用普林斯頓( Pr inceton )體系結構, 又稱馮。諾曼( Von Neumann) 結構。具有程序存儲器與數據存儲器合二為一的特點。它的P0口只能用于輸入, P1口是一個準雙向口, P2 口是一個多功能口, P3、P4口是雙向口可作為系統(tǒng)總線。
在本系統(tǒng)的電路中, 采用P1口與觸摸屏接口打交道, P1口內部管腳結構如圖2 所示。P1口是一個準雙向I/O口, 它由輸出緩沖器、內部口鎖存器、內部口寄存器和輸出緩沖器構成, 與MCS51的準雙向口相同, 內部具有上拉電阻結構。如圖2所示, 上拉作用由三個FET管產生, 其中p1是強上拉, p3由于高阻存在為弱上拉, p2為更弱上拉, n是低阻下拉FET.
圖2 準雙向口P1內部結構
當復位時,P1口呈現微弱上拉。當用作輸入輸出功能, 其原理是:“輸入”: P1口輸入數據時實際上是輸入到P1口寄存器中, 由寄存器去驅動管腳, 圖二上/Q 即為寄存器的輸出, CPU 讀數據時是直接讀管腳。因此在讀數據時要保證P1口為輸入狀態(tài), 應先對P1口寄存器SFR置位, 此時n截止。切記當端口用作輸入口時, 決不能向該口寫數據“0”。“ 輸出”:在此狀態(tài)下, 當指令對P1. x口的I/O口寄存器輸入數據是“0”時, 內部寄存器的/Q輸出會打開下拉FET即n, 而關閉全部上拉FET即p1、p2、p3, 這時對應輸出腳電平PORT PIN 為“0”; 當指令對P1口的某一個I /O口寄存器輸入數據是“1”時, 內部寄存器的/Q輸出會關閉n, 打開p1、p2、p3, 這時對應輸出腳電平PORT PIN 為 “1”,即輸出是一個編程直接“寫”的過程。
2. 2 X ilinx95144
是一款高品質的Comp lex Prog ramm able LogIC Device 復雜的可編程邏輯器件( CPLD), 典型工作電壓為3. 3- 5V, 支持ISP即在線編程功能, 編程次數可達上萬次, 管腳到管腳信號延遲7. 5ns, 工作頻率可達111MH z, 內部有144個宏單元均是ROM 結構, 掉電后內部的邏輯數據不會丟失。每個I /O管腳在輸出狀態(tài)下: 高電平時典型值- 4mA, 低電平典型值24mA; 每個I /O管腳在輸入狀態(tài)下: 高、低電平時均為uA級。因此輸出電氣特性: 在通常的TTL電平芯片電路中、外接驅動不多的情況下, 可以不使用上拉電阻; 輸入電氣特性:
一般的集成芯片都可以直接與其相連, 不會出現驅動力不夠現象, 更不會出現損壞。
2. 3 觸摸顯示屏
顯示部分的控制芯片是SED1335, 是日本EPSON 公司生產的一款液晶顯示屏專用控制器, 與同類產品相比功能最強。其特點主要是: 有較強功能的I /O 緩沖器; 指令功能豐富; 4位數據并行發(fā)送; 圖形和文本方式混合顯示。觸摸部分的控制芯片是模擬數據轉換器ADS7843, 是美國T i公司生產的具有同步串行接口的8 位、12位數據輸出, 四線電阻觸摸屏模數轉換接口芯片。它通過標準SPI協(xié)議和CPU 通信; 精度高, 當使用12位時精度達到0. 04mm, 可以達到X, Y 方向上的1/256, 1 /4096精度; 最大可接受電流? 50mA, 典型值為數uA; 工作電壓為- 0. 3- + 6V; 工作時鐘典型值2MH z即數量級是uS; 當觸摸屏被按下時( 即有觸摸事件發(fā)生) ,ADS7843會發(fā)出中斷請求。
在出現數次問題后, 我們都發(fā)現顯示部分正常, 而觸摸部分不正常, 也就是ADS7843的使用有問題, 其內部結構原理圖如圖3所示。從圖上我們可以看見主要有四通道信號轉換器、逐次逼近寄存器( SAR )、電容型數據/轉換器( CDAC )、比較器、串行接口與控制器功能模塊組成。其中與編程有關的信號是DCLK、/CS、DIN、DOUT、BUSY、/PENIRQ,數據流向見圖4所示。
圖3 AD7843內部原理結構
圖4 ADS7843接口圖
對于ADS7843來說, 除了電源與地線, 輸入模擬信號X+ 、X- 、Y+ 、Y - 、IN3、IN4, 輸入數字信號DCLK、/CS、DIN;輸出數字信號BUSY、DOUT、/PEN IRQ.與編程有關的均是數字信號, 數據輸入、輸出、時鐘輸入均為串行方式, 最高轉換速率為1/125KH z, 線路設計結構上比較方便只需要6根端口線單片機就可以建立完全的數據交互。
2. 4 現象分析
采用80196的P1口的6個端口專門與其打交道, 從硬件上講是完全可以的。然而由于在編程中P1口有些端口是作輸入、有些端口需要作為輸出, 80196又沒有對位直接進行操作的指令, 對P1某一個端口作輸出操作, 通常196會先讀P1口的8個管腳, 然后再進行 寫!的操作, 根據P1
采用80196的P1口的6個端口專門與其打交道, 從硬件上講是完全可以的。然而由于在編程中P1口有些端口是作輸入、有些端口需要作為輸出, 80196又沒有對位直接進行操作的指令, 對P1某一個端口作輸出操作, 通常196會先讀P1口的8個管腳, 然后再進行 寫!的操作, 根據P1口結構, 必然會帶來若作為輸入端口的管腳在其外部輸入信號為低時, 執(zhí)行 寫!指令后出現了將其輸入狀態(tài)改為了輸出狀態(tài)。此時在80196與ADS7843的DOUT與/PEN IRQ這兩根線上都將出現了同一根線上出現兩個輸出信號、爭搶信號的問題, 這是數字電路中絕對不允許的, 它的出現就有可能損壞芯片。
根據資料介紹, 在編程操作中, 當P1口中有些管腳作為輸入, 有些管腳作為輸出時要特別注意對P1 口寫指令操作,它是一個讀、寫過程, 最好借助于一些單元。
3 軟件設計分析
對于按鍵的處理, 系統(tǒng)采用中斷方式, 流程如圖5所示。
圖5按鍵流程圖
主要相關程序如下:
/* 觸摸屏寫控制指令、讀數據子程序* /
LDB R6, # 08H ; 寫8位控制指令代碼
CLRC; LDB AL, COM ; 指令代碼準備發(fā)送
ADS7843_W: SHLB AL, # 1 ; 數據串行發(fā)送
JC S_D I_1; JMP S_DI_0
S_DI_1: LDB BL, IOPORT1 ; 將P1 口狀態(tài)保存在BL 寄存器中
ORB BL, # 03H ; 將數據出DOUT置高, 數據入DIN 為信號輸入狀態(tài)
LDB IOPORT1, BL ; 將修改后的狀態(tài)送至P1口
JMP SKCLK
S_DI_0: LDB BL, IOPORT1 ; 將P1 口狀態(tài)保存在BL 寄存器中
ANDB BL, # 0FEH ; 將數據出DOUT 置低
ORB BL, # 02H ; 數據入D IN為信號輸入狀態(tài)
LDB IOPORT1, BL; 將修改后的狀態(tài)送至P1口
SKCLK: LDB BL, IOPORT1 ; 將P1口狀態(tài)保存在BL寄存器中
ANDB BL, # 0F7H ; 時鐘信號DCLK為低
ORB BL, # 01H ; 將數據出DOUT 置高
LDB IOPORT1, BL ; 將修改后的狀態(tài)送至P1口
LDB BL, IOPORT1 ; 將P1口狀態(tài)保存在BL寄存器中
ORB BL, # 09H ; 時鐘信號DCLK 為高, 將數據出DOUT置高
LDB IOPORT1, BL ; 將修改后的狀態(tài)送至P1口
DJNZ R6, ADS7843_W ; 8位指令送完
LDB BL, IOPORT1 ; 將P1口狀態(tài)保存在BL寄存器中
ANDB BL, # 0F7H ; 時鐘信號DCLK為低
ORB BL, # 01H ; 將數據出DOUT 置高
LDB IOPORT1, BL ; 將修改后的狀態(tài)送至P1口
/* 準備接受觸摸屏按鍵讀14 位數據數據, 先接受低8位數據* /
LDB R6, # 08H ; 鍵值設定方向讀低8位數據程序
DATA_OUT: LDB BL, IOPORT1 ; 將P1口狀態(tài)保存在BL寄存器中
ORB BL, # 09H ; 時鐘信號DCLK 為高, 將數據出DOUT置高
LDB IOPORT1, BL ; 將修改后的狀態(tài)送至P1口
LDB BL, IOPORT1 ; 將P1口狀態(tài)保存在BL寄存器中
ANDB BL, # 0F7H ; 時鐘信號DCLK為低
ORB BL, # 01H ; 將數據出DOUT 置高
LDB IOPORT1, BL ; 將修改后的狀態(tài)送至P1口
SHLB AL, # 1 ; 數據左移一位
JBS IOPORT1, 0, DI_O_1 ; 判數據入DIN 高?
ANDB AL, # 0FEH ; 數據入DIN低, 輸入0
JMP DATA_OUT1
DI_O_1: ORB AL, # 01H ; 數據入DIN高, 輸入1
DATA_OUT1: DJNZ R6, DATA_OUT ; 8位數據讀完
STB AL, FIRST ; 低8位數據保存至FIRST單元同樣處理接受數據高4位數據
…… …… ; 4位數據讀完, 數據保存。讀14 位數據程序完成后返回
程序上機調試后再沒有出現觸摸屏與單片機之間指令不執(zhí)行, 燒壞觸摸芯片的問題。也許你會發(fā)現, 在程序編程中, 我們使用了BL寄存器作P1口的過渡保護單元, 對輸出信號采用了對位的或、與方式達到輸出“1”、 “0”電平。保證P1的輸入端口不會因其他P1 端口的操作而改變其狀態(tài), 在信號線上出現兩個輸出、爭搶信號的現象。這就是觸摸屏出問題的主要原因。
4 結語
在項目鑒定時, 專家們給出了系統(tǒng)設計新穎、結構合理、功能比較完善, 擴展性強, 有一定的市場空間。特別提到了每個觸摸鍵設計合理、反映正確的結論。
在本項目結束時還有一個關于按鍵的遺留問題: 由于是使用單端模式工作, 且CPU 接到請求后, 為了消除抖動、防止誤觸發(fā), 延時后再響應其請求, 造成了按鍵反映遲緩, 這是一個硬件、軟件都需改進的問題, 硬件需換模擬數據轉換芯片,軟件上延時可以短一些。