• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      TMS320F2812DSP與MT6056i觸摸屏的通信設(shè)計(jì)和調(diào)試

      2014-04-29 11:35:27馮惕
      電子世界 2014年15期
      關(guān)鍵詞:通信觸摸屏

      【摘要】為了將MT6056i觸摸屏作為TMS320F2812數(shù)字系統(tǒng)的人機(jī)界面,提出了溝通兩者信息交換的通信設(shè)計(jì)方案。此設(shè)計(jì)根據(jù)各設(shè)備的功能特點(diǎn),采用MAX3232芯片構(gòu)成硬件的通信接口,觸摸屏主動(dòng)按批發(fā)送、運(yùn)用F2812中SCI增強(qiáng)功能FIFO使F2812的CPU按批進(jìn)行通信數(shù)據(jù)接收和發(fā)送、最后觸摸屏按批接收的數(shù)據(jù)傳送流程實(shí)現(xiàn)了兩設(shè)備的通信。設(shè)計(jì)方案給出了F2812和MT6056i的基本設(shè)置、程序及數(shù)據(jù)回送通信的調(diào)試方法。該方案可有效解決F2812與觸摸屏之間的通信問(wèn)題,成功地使之作為F2812數(shù)字系統(tǒng)的人機(jī)界面。

      【關(guān)鍵詞 】F2812;觸摸屏;通信;先進(jìn)先出;宏指令

      1.引言

      DSP強(qiáng)大的運(yùn)算功能 、快捷的處理速度使之成為許多系統(tǒng)的控制核心,如若配以觸摸屏作為其人機(jī)界面,不但操作顯示性則能大幅度提高,而且還有趨勢(shì)線、數(shù)據(jù)報(bào)表、監(jiān)控、報(bào)警等多種功能,使系統(tǒng)進(jìn)一步趨于完美。

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

      2.F2812與MT6056i的硬件連接

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

      圖1 通信接口電路

      3.通信原理

      MT6056i與F2812之間采用主從通信方式,觸摸屏為主設(shè)備,F(xiàn)2812為從設(shè)備。一次通信中,MT6056i發(fā)送請(qǐng)求幀,F(xiàn)2812收到后發(fā)送響應(yīng)幀。

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

      觸摸屏RS-232接口接收該通信幀后,觸摸屏內(nèi)CPU將其整合為界面上可接受的數(shù)據(jù)格式,在人機(jī)界面相應(yīng)位置上顯示出來(lái),一次通信結(jié)束。

      每間隔一定時(shí)間,重復(fù)上述過(guò)程,就可連續(xù)進(jìn)行F2812與MT6056i之間的信息交換,實(shí)現(xiàn)觸摸屏對(duì)F2812數(shù)字系統(tǒng)的動(dòng)態(tài)監(jiān)控。

      4.F2812主要通信設(shè)置及程序

      F2812用C語(yǔ)言在CCS3.3中進(jìn)行編程和調(diào)試。以下為F2812通信的初始化函數(shù),“//”后為前一句語(yǔ)句的簡(jiǎn)要說(shuō)明。其主要功能是根據(jù)通信要求為通信控制寄存器(SCICCR),控制寄存器1(SCICTL1)、控制寄存器2(SCICTL2),波特率寄存器(SCIHBAUD和SCILBAUD),F(xiàn)IFO發(fā)送寄存器(SCIFFTX)、FIFO接收寄存器(SCIFFRX),F(xiàn)IFO控制寄存器(SCIFFCT)設(shè)置參數(shù)[2-3]?;就ㄐ艆?shù)為波特率19200bps,每個(gè)字符幀10位:1位起始位、8位數(shù)據(jù)位、無(wú)校驗(yàn)位、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;

      //禁止回送測(cè)試

      SciaRegs.SCICCR.bit.PARITYENA=0;

      //禁止奇偶校驗(yàn)

      SciaRegs.SCICCR.bit.STOPBITS=0;

      //一個(gè)停止位

      SciaRegs.SCICTL1.bit.all=0x0003;

      SciaRegs.SCICTL1.bit.RXENA=1;

      //使能接收

      SciaRegs.SCICTL1.bit.TXENA=1;

      //使能發(fā)送

      SciaRegs.SCICTL1.bit.SLEEP=0;

      //禁止睡眠

      SciaRegs.SCICTL1.bit.TXWAKE=0;

      //非多處理器模式

      SciaRegs.SCICTL1.bit.SWRESET=0;

      //SCI軟件復(fù)位

      SciaRegs.SCICTL1.bit.RXERRINTENA=0;

      //禁止接收錯(cuò)誤中斷

      SciaRegs.SCICTL2.bit.TXINTENA =0;

      //禁止發(fā)送中斷

      SciaRegs.SCICTL2.bit.RXBKINTENA =0;

      //使能RXRDY/BRKDY中斷

      SciaRegs.SCIHBAUD =0x0000;

      SciaRegs.SCILBAUD =0x00f3;

      //低速外設(shè)時(shí)鐘為37.5 MHz時(shí),波特率為19200bps

      SciaRegs.SCIFFTX.bit.TXFFILIL=0;

      //發(fā)送中斷級(jí)位為0

      SciaRegs.SCIFFTX.bit.TXFFIENA=0;

      //禁止發(fā)送FIFO匹配中斷

      SciaRegs.SCIFFTX.bit.TXINTCLR=0;

      //不影響TXFFINT標(biāo)志位

      SciaRegs.SCIFFTX.bit.TXFFINT=0;

      //保留發(fā)送中斷標(biāo)志位默認(rèn)值

      SciaRegs.SCIFFTX.bit.TXFFST=0;

      //保留發(fā)送狀態(tài)位初始值SciaRegs.SCIFFTX.bit.TXFIFOXRESET=0;

      //發(fā)送復(fù)位且發(fā)送FIFO指針為0

      SciaRegs.SCIFFTX.bit.SCIFFENA=1;

      //使能FIFO功能

      SciaRegs.SCIFFTX.bit.SCIRST=1;

      //FIFO重新開(kāi)始發(fā)送或接收

      SciaRegs.SCIFFRX.bit.RXFFIL=12;

      //接收中斷級(jí)位為12,為N。

      SciaRegs.SCIFFRX.bit.RXFFIENA=1;

      //使能接收匹配中斷

      SciaRegs.SCIFFRX.bit.RXFFINTCLR=0;

      //不影響RXFFINT標(biāo)志位

      SciaRegs.SCIFFRX.bit.RXFFINT=0;

      //保留接收中斷標(biāo)志位默認(rèn)值

      SciaRegs.SCIFFRX.bit.RXFIFST=0;

      //保留接收狀態(tài)位初始值

      SciaRegs.SCIFFRX.bit.RXFIFORESET=0;

      // 接收復(fù)位且接收FIFO指針為0

      SciaRegs.SCIFFRX.bit.RXFFOVRCLR=0;

      // 不影響接收FIFO溢出標(biāo)志位

      SciaRegs.SCIFFRX.bit.RXFFOVF=0;

      //保留接收FIFO溢出標(biāo)志位的默認(rèn)值

      SciaRegs.SCIFFCT.all=0x00;

      //FIFO控制寄存器配置成默認(rèn)狀態(tài)

      SciaRegs.SCICTL1.bit.SWRESET=1;

      // 重新使能SCI

      SciaRegs.SCIFFRX.bit.RXFIFORESET=1;

      //重新使能FIFO接收

      }

      上述函數(shù)嵌入原系統(tǒng)main函數(shù)的初始化程序段。原main函數(shù)前要添加對(duì)應(yīng)串口通信的頭文件。實(shí)時(shí)通信相應(yīng)語(yǔ)句嵌入for循環(huán)或中斷循環(huán)結(jié)構(gòu)內(nèi),以便進(jìn)行動(dòng)態(tài)監(jiān)控,如:

      #include "DSP281x_Device.h"

      #include "DSP281x_Examples.h"

      Uint16 dataA[12];

      /定義數(shù)組,通信接收時(shí)用。

      Uint16 dataB[12];

      //定義數(shù)組,通信發(fā)送時(shí)用。

      //定義其它變量。

      void main(void)

      {

      Uint16 i;

      EALLOW;

      //允許寫(xiě)入受保護(hù)的寄存器。

      GpioMuxRegs.GPFMUX.all=0x0030;

      //將GPIOF4端設(shè)置為SCITXDA端、GPIOF5端設(shè)置為SCIRXDA端 。

      EDIS;

      //禁止寫(xiě)入受保護(hù)的寄存器。

      scia_fifo_init();

      //SCIA初始化。

      for(;;)

      {

      …//其它程序段

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

      //說(shuō)明FIFO中已有12字節(jié)

      {

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

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

      //將接收FIFO中的數(shù)據(jù)放入數(shù)組dataA

      …//命令處理程序

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

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

      //將數(shù)組dataB的數(shù)據(jù)放入發(fā)送FIFO中

      SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;

      //清除中斷標(biāo)志RXFFINT

      }

      …// 其它程序段

      }

      }

      收、發(fā)語(yǔ)句之間命令處理程序的作用是根據(jù)協(xié)議約定將dataA數(shù)組中的信息進(jìn)行處理,并將將要在屏幕上顯示內(nèi)容的有關(guān)信息放入dataB數(shù)組。

      5.通信調(diào)試

      觸摸屏與F2812能否通信,可采用數(shù)據(jù)回送方法進(jìn)行試驗(yàn)。F2812方面的設(shè)置和編程見(jiàn)第4節(jié)所述,并循環(huán)體中加入語(yǔ)句,使數(shù)組dataB = 數(shù)組dataA。

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

      macro_command main()

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

      char command[12],response[13]

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

      FILL(response[0], 0, 13)

      while 1

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

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

      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個(gè)字變量中數(shù)據(jù)送入界面上LW0起的4個(gè)字

      end if

      DELAY(1)

      圖2 觸摸屏通信調(diào)試界面

      系統(tǒng)試運(yùn)行,如在輸入數(shù)字框鍵入一16進(jìn)制數(shù),輸出數(shù)字框也會(huì)顯示相應(yīng)的數(shù)值,說(shuō)明通信暢通。之后,就可把F2812中的數(shù)組dataB與數(shù)組dataA的聯(lián)系斷開(kāi),將dataA的數(shù)據(jù)進(jìn)一步處理;把F2812中要顯示的數(shù)據(jù)送入dataB。另外觸摸屏的界面和宏指令程序也要改變以滿足實(shí)際系統(tǒng)需要。

      6.結(jié)語(yǔ)

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

      參考文獻(xiàn)

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

      [2]劉和平,鄧力,江渝等.數(shù)字信號(hào)處理器原理、結(jié)構(gòu)及應(yīng)用基礎(chǔ)[M].北京:機(jī)械工業(yè)出版社,2007.

      [3]蘇奎峰,呂強(qiáng),耿慶鋒等.TMS320X281xDSP 原理及C程序開(kāi)發(fā)[M].北京:北京航空航天大學(xué)出版社,2008.

      [4]EB8000觸摸屏操作手冊(cè)[Z].

      作者簡(jiǎn)介:馮惕(1958—),男,江蘇蘇州人,碩士,副教授,高級(jí)工程師,現(xiàn)供職于蘇州職業(yè)大學(xué)電子信息工程學(xué)院,研究方向:滿意優(yōu)化控制,電機(jī)的變頻控制,數(shù)據(jù)通信等。

      猜你喜歡
      通信觸摸屏
      PLC和觸摸屏在衛(wèi)生間控制系統(tǒng)的應(yīng)用
      淺析投射式多點(diǎn)觸控電容觸摸屏
      電子制作(2018年19期)2018-11-14 02:37:02
      皮膚“長(zhǎng)”出觸摸屏
      基于“一級(jí)調(diào)度、兩級(jí)運(yùn)維”的通信管理體系研究①
      科技資訊(2016年19期)2016-11-15 10:10:38
      計(jì)算機(jī)技術(shù)在通信中的應(yīng)用
      簡(jiǎn)述計(jì)算機(jī)通信網(wǎng)絡(luò)安全與防護(hù)策略
      Android環(huán)境下主UI線程與子線程通信機(jī)制研究
      無(wú)線自組網(wǎng)在野戰(zhàn)防空通信系統(tǒng)中的應(yīng)用
      對(duì)數(shù)字微波通信技術(shù)的研究
      投射式多點(diǎn)觸控電容觸摸屏
      河南科技(2014年12期)2014-02-27 14:10:32
      安塞县| 银川市| 蚌埠市| 阿图什市| 北川| 辰溪县| 黔西| 云安县| 繁峙县| 苏尼特左旗| 平邑县| 乾安县| 永宁县| 施秉县| 阳泉市| 双城市| 偏关县| 嵩明县| 崇仁县| 庆阳市| 松桃| 阳城县| 石楼县| 黄石市| 永平县| 北海市| 从江县| 湖口县| 恩施市| 同德县| 肃北| 花莲市| 马边| 隆林| 湖南省| 定西市| 宜兰市| 浑源县| 嘉峪关市| 镇沅| 荔波县|