999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

TMS320F2812DSP與MT6056i觸摸屏的通信設計和調試

2014-04-29 11:35:27馮惕
電子世界 2014年15期

【摘要】為了將MT6056i觸摸屏作為TMS320F2812數字系統的人機界面,提出了溝通兩者信息交換的通信設計方案。此設計根據各設備的功能特點,采用MAX3232芯片構成硬件的通信接口,觸摸屏主動按批發送、運用F2812中SCI增強功能FIFO使F2812的CPU按批進行通信數據接收和發送、最后觸摸屏按批接收的數據傳送流程實現了兩設備的通信。設計方案給出了F2812和MT6056i的基本設置、程序及數據回送通信的調試方法。該方案可有效解決F2812與觸摸屏之間的通信問題,成功地使之作為F2812數字系統的人機界面。

【關鍵詞 】F2812;觸摸屏;通信;先進先出;宏指令

1.引言

DSP強大的運算功能 、快捷的處理速度使之成為許多系統的控制核心,如若配以觸摸屏作為其人機界面,不但操作顯示性則能大幅度提高,而且還有趨勢線、數據報表、監控、報警等多種功能,使系統進一步趨于完美。

由于目前工業用觸摸屏主要是作為PLC控制系統的人機界面,不能直接與DSP配套使用,其關鍵問題是兩者無法進行通信。本文根據文獻[1]所述系統通信部分的設計和調試經驗,介紹TMS320F2812(文中簡稱F2812)DSP與威綸通科技有限公司MT6056i觸摸屏(文中簡稱MT6056i)的通信設計和調試的具體方法。

2.F2812與MT6056i的硬件連接

觸摸屏一般通過串行通信接口RS-232與其它設備進行通信,F2812外設串行通信接口SCIA需通過接口轉換電路才能與觸摸屏RS-232接口相連[1] ,見圖1。MAX3232芯片中11端、12端分別與F2812的SCITXDA/GPIOF4端、SCIRXDA/GPIOF5端相連。J1插座中的1端、2端與3端分別與9 針RS232通信接口的5端、2端與3端相連。

圖1 通信接口電路

3.通信原理

MT6056i與F2812之間采用主從通信方式,觸摸屏為主設備,F2812為從設備。一次通信中,MT6056i發送請求幀,F2812收到后發送響應幀。

F2812方面,啟用SCI的FIFO功能。當一幀N(通信幀長度,1~16,初始化時設定,文中取N=12)個字節全部進入FIFO接收寄存器組,在CPU查詢時刻(若N個字節已全部到位)或在接收中斷時刻,即將其一起轉出,經校驗無誤后,存入一數組,按協議規則將其有用信息提取、變換,并根據其中的信息進行相應操作。之后,將要顯示的信息按協議規則存入另一數組,經處理后送入FIFO發送寄存器組,由SCIA串行通信接口一批逐字節發出。

觸摸屏RS-232接口接收該通信幀后,觸摸屏內CPU將其整合為界面上可接受的數據格式,在人機界面相應位置上顯示出來,一次通信結束。

每間隔一定時間,重復上述過程,就可連續進行F2812與MT6056i之間的信息交換,實現觸摸屏對F2812數字系統的動態監控。

4.F2812主要通信設置及程序

F2812用C語言在CCS3.3中進行編程和調試。以下為F2812通信的初始化函數,“//”后為前一句語句的簡要說明。其主要功能是根據通信要求為通信控制寄存器(SCICCR),控制寄存器1(SCICTL1)、控制寄存器2(SCICTL2),波特率寄存器(SCIHBAUD和SCILBAUD),FIFO發送寄存器(SCIFFTX)、FIFO接收寄存器(SCIFFRX),FIFO控制寄存器(SCIFFCT)設置參數[2-3]。基本通信參數為波特率19200bps,每個字符幀10位:1位起始位、8位數據位、無校驗位、1位停止位。

void scia_fifo_init()

{

SciaRegs.SCICCR.all=0x0007;

SciaRegs.SCICCR.bit.SCICHAR=7;

//8位字符

SciaRegs.SCICCR.bit.ADDRIDLE_MODE=0;

//空閑線模式

SciaRegs.SCICCR.bit.LOOPBKENA=0;

//禁止回送測試

SciaRegs.SCICCR.bit.PARITYENA=0;

//禁止奇偶校驗

SciaRegs.SCICCR.bit.STOPBITS=0;

//一個停止位

SciaRegs.SCICTL1.bit.all=0x0003;

SciaRegs.SCICTL1.bit.RXENA=1;

//使能接收

SciaRegs.SCICTL1.bit.TXENA=1;

//使能發送

SciaRegs.SCICTL1.bit.SLEEP=0;

//禁止睡眠

SciaRegs.SCICTL1.bit.TXWAKE=0;

//非多處理器模式

SciaRegs.SCICTL1.bit.SWRESET=0;

//SCI軟件復位

SciaRegs.SCICTL1.bit.RXERRINTENA=0;

//禁止接收錯誤中斷

SciaRegs.SCICTL2.bit.TXINTENA =0;

//禁止發送中斷

SciaRegs.SCICTL2.bit.RXBKINTENA =0;

//使能RXRDY/BRKDY中斷

SciaRegs.SCIHBAUD =0x0000;

SciaRegs.SCILBAUD =0x00f3;

//低速外設時鐘為37.5 MHz時,波特率為19200bps

SciaRegs.SCIFFTX.bit.TXFFILIL=0;

//發送中斷級位為0

SciaRegs.SCIFFTX.bit.TXFFIENA=0;

//禁止發送FIFO匹配中斷

SciaRegs.SCIFFTX.bit.TXINTCLR=0;

//不影響TXFFINT標志位

SciaRegs.SCIFFTX.bit.TXFFINT=0;

//保留發送中斷標志位默認值

SciaRegs.SCIFFTX.bit.TXFFST=0;

//保留發送狀態位初始值SciaRegs.SCIFFTX.bit.TXFIFOXRESET=0;

//發送復位且發送FIFO指針為0

SciaRegs.SCIFFTX.bit.SCIFFENA=1;

//使能FIFO功能

SciaRegs.SCIFFTX.bit.SCIRST=1;

//FIFO重新開始發送或接收

SciaRegs.SCIFFRX.bit.RXFFIL=12;

//接收中斷級位為12,為N。

SciaRegs.SCIFFRX.bit.RXFFIENA=1;

//使能接收匹配中斷

SciaRegs.SCIFFRX.bit.RXFFINTCLR=0;

//不影響RXFFINT標志位

SciaRegs.SCIFFRX.bit.RXFFINT=0;

//保留接收中斷標志位默認值

SciaRegs.SCIFFRX.bit.RXFIFST=0;

//保留接收狀態位初始值

SciaRegs.SCIFFRX.bit.RXFIFORESET=0;

// 接收復位且接收FIFO指針為0

SciaRegs.SCIFFRX.bit.RXFFOVRCLR=0;

// 不影響接收FIFO溢出標志位

SciaRegs.SCIFFRX.bit.RXFFOVF=0;

//保留接收FIFO溢出標志位的默認值

SciaRegs.SCIFFCT.all=0x00;

//FIFO控制寄存器配置成默認狀態

SciaRegs.SCICTL1.bit.SWRESET=1;

// 重新使能SCI

SciaRegs.SCIFFRX.bit.RXFIFORESET=1;

//重新使能FIFO接收

}

上述函數嵌入原系統main函數的初始化程序段。原main函數前要添加對應串口通信的頭文件。實時通信相應語句嵌入for循環或中斷循環結構內,以便進行動態監控,如:

#include "DSP281x_Device.h"

#include "DSP281x_Examples.h"

Uint16 dataA[12];

/定義數組,通信接收時用。

Uint16 dataB[12];

//定義數組,通信發送時用。

//定義其它變量。

void main(void)

{

Uint16 i;

EALLOW;

//允許寫入受保護的寄存器。

GpioMuxRegs.GPFMUX.all=0x0030;

//將GPIOF4端設置為SCITXDA端、GPIOF5端設置為SCIRXDA端 。

EDIS;

//禁止寫入受保護的寄存器。

scia_fifo_init();

//SCIA初始化。

for(;;)

{

…//其它程序段

if(SciaRegs.SCIFFRX.bit.RXFFINT==1)

//說明FIFO中已有12字節

{

for(i=0;i<12;i++)

{ dataA[i]=SciaRegs.SCIRXBUF.all;}

//將接收FIFO中的數據放入數組dataA

…//命令處理程序

for(i=0; i< 12; i++)

{SciaRegs.SCITXBUF=dataB[i]&0x00FF;}

//將數組dataB的數據放入發送FIFO中

SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;

//清除中斷標志RXFFINT

}

…// 其它程序段

}

}

收、發語句之間命令處理程序的作用是根據協議約定將dataA數組中的信息進行處理,并將將要在屏幕上顯示內容的有關信息放入dataB數組。

5.通信調試

觸摸屏與F2812能否通信,可采用數據回送方法進行試驗。F2812方面的設置和編程見第4節所述,并循環體中加入語句,使數組dataB = 數組dataA。

另外,在EB8000觸摸屏編程軟件中,在系統參數→設備列表中新增一個的設備,這個“PLC”(選中)的名稱為“MODBUS RTU Device”,所在位置選為“本機”,類型設置選為“Free Protocol”,接口類型為RS232[4],通信口設置為“COM1,19200,8,N,1”。設計圖2所示觸摸屏界面,界面上有4(可根據需要確定,但要不能大于N/2)個數值輸入元件NE_0~NE_3和4個數值顯示元件ND_0~ND_3。設置NE_0~NE_3對應界面變量LW0~LW3,ND_0~ND_3對應界面變量LW10~LW13。變量顯示格式均為16位16進制數。配上以下觸摸屏宏指令程序:

macro_command main()

short aaaa[6],bbbb[6], return_value

char command[12],response[13]

FILL(command[0], 0, 12) //將數組12個元素置“0”

FILL(response[0], 0, 13)

while 1

GetData(aaaa[0], "Local HMI", LW,0, 4)

//將界面上LW0起的4個數據(字)送入aaaa[0]為首的4個字變量

HIBYTE( aaaa[0],command[0])

LOBYTE( aaaa[0],command[1])

HIBYTE( aaaa[3],command[6])

LOBYTE( aaaa[3],command[7])

OUTPORT(command[0],"MODBUS RTU Device",12) INPORT(response[0],"MODBUS RTU Device",13, return_value)

if (return_value > 0) ?then

read_data[0] = response[1]

read_data[0]=read_data[0]+(response[0] << 8)

read_data[3] = response[7]

read_data[3]=read_data[3]+(response[6] << 8)

SetData(read_data[0], "Local HMI", LW, 10, 4) //將aaaa[0]為首的4個字變量中數據送入界面上LW0起的4個字

end if

DELAY(1)

圖2 觸摸屏通信調試界面

系統試運行,如在輸入數字框鍵入一16進制數,輸出數字框也會顯示相應的數值,說明通信暢通。之后,就可把F2812中的數組dataB與數組dataA的聯系斷開,將dataA的數據進一步處理;把F2812中要顯示的數據送入dataB。另外觸摸屏的界面和宏指令程序也要改變以滿足實際系統需要。

6.結語

實踐證明,加接串行通信轉換接口,運用F2812串行通信接口的FIFO功能,結合MT6056i宏指令編程可有效解決F2812與MT6056i之間的通信問題。盡管此設計是針對F2812與MT6056i的,但也可供F28xx系列DSP與WEINVIEW其它系列觸摸屏的配套使用提供參考。

參考文獻

[1]馮惕,淮文軍.基于F2812與觸摸屏通信的雙電機變頻器設計[J].計算機測量與控制,2013,21(5):1310-1313.

[2]劉和平,鄧力,江渝等.數字信號處理器原理、結構及應用基礎[M].北京:機械工業出版社,2007.

[3]蘇奎峰,呂強,耿慶鋒等.TMS320X281xDSP 原理及C程序開發[M].北京:北京航空航天大學出版社,2008.

[4]EB8000觸摸屏操作手冊[Z].

作者簡介:馮惕(1958—),男,江蘇蘇州人,碩士,副教授,高級工程師,現供職于蘇州職業大學電子信息工程學院,研究方向:滿意優化控制,電機的變頻控制,數據通信等。

主站蜘蛛池模板: 麻豆精品视频在线原创| 亚洲精品麻豆| 91高清在线视频| 第一页亚洲| 一本色道久久88| 国产成人综合网| 精品国产香蕉伊思人在线| 国产美女精品在线| 亚洲精品无码专区在线观看 | 国产免费好大好硬视频| 999国内精品视频免费| 99免费视频观看| 国产激爽大片高清在线观看| 亚洲免费毛片| 欧美日本中文| 天堂va亚洲va欧美va国产 | 国产99视频精品免费视频7| 欧美性爱精品一区二区三区| 小13箩利洗澡无码视频免费网站| 久久精品国产在热久久2019| 波多野结衣在线se| 热99re99首页精品亚洲五月天| www欧美在线观看| 婷婷丁香在线观看| 国产在线观看第二页| 美女无遮挡被啪啪到高潮免费| 99视频只有精品| 草草线在成年免费视频2| 国产麻豆福利av在线播放| 国产精品嫩草影院视频| 亚洲AV免费一区二区三区| 无码高潮喷水在线观看| 精品超清无码视频在线观看| 99热这里只有精品在线观看| 在线免费观看a视频| 久草热视频在线| 精品国产中文一级毛片在线看| 欧美日韩第二页| 又猛又黄又爽无遮挡的视频网站| 九色在线视频导航91| 国产在线精品香蕉麻豆| www亚洲精品| 99久久精品免费视频| 人人爱天天做夜夜爽| 亚洲成综合人影院在院播放| 日韩黄色精品| 国产门事件在线| 99久久精彩视频| 久久精品一品道久久精品| 91探花在线观看国产最新| 性做久久久久久久免费看| 国产粉嫩粉嫩的18在线播放91 | 在线观看91香蕉国产免费| 91精品国产91久无码网站| 日韩 欧美 小说 综合网 另类 | 91无码国产视频| 热伊人99re久久精品最新地| 午夜毛片福利| 国产成人乱无码视频| 久久久久国产精品嫩草影院| 就去色综合| 精品久久蜜桃| 免费亚洲成人| 国产成a人片在线播放| 色噜噜在线观看| 欧美无遮挡国产欧美另类| 91福利一区二区三区| 重口调教一区二区视频| 免费不卡视频| 2020国产精品视频| 激情网址在线观看| 农村乱人伦一区二区| 国产免费羞羞视频| 欧美在线三级| 国产偷倩视频| 国产精品永久免费嫩草研究院| 91青草视频| 国产69精品久久久久孕妇大杂乱 | 欧美性精品| 中文字幕在线播放不卡| 免费一级毛片在线观看| av尤物免费在线观看|