新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > TMS320VC5402與單片機(jī)的HPI口通信設(shè)計(jì)

TMS320VC5402與單片機(jī)的HPI口通信設(shè)計(jì)

作者: 時(shí)間:2013-02-07 來源:網(wǎng)絡(luò) 收藏

  MOV  R2 , # 00H  ;寫幀類型

  MOV  R3 , # 02H

  LCALL  LWHPID

  MOV  R2 , # 00H  ;寫DA TA[0 ]

  MOV  R3 , # 03H

  LCALL  LWHPID

  MOV  IE , # 81H  ;主機(jī)中斷允許

  MOV  R2 , # 04H  ;DSP HPI 中斷

  MOV  R3 , # 04H

  LCALL  WHPIC  ;寫HPIC

  SJMP $ ;等待主機(jī)中斷發(fā)生

  在DSP 的軟件中,用HPI 中斷服務(wù)程序?qū)崿F(xiàn)數(shù)據(jù)收發(fā). DSP 的HPI 中斷服務(wù)程序置位中斷標(biāo)志[4 ] ,C 語言主程序根據(jù)接收幀在地址0X200 處寫入一個(gè)發(fā)送幀,并發(fā)送主機(jī)中斷到A T 89 C 51. C 語言程序如下:

  typedef st ruct

  { int head ;  / 3 f ramehead 3 /

  int length ;  / 3 f ramelength 3 /

  int f unc ;  / 3 f unc type 3 /

  int data [ 253 ] ;  / 3 t he data 3 /

  } HPIFRAME ;

  HPIFRAME hpiinbuf ;

  HPIFRAME hpiout buf ;

  # pragma DA TA_SECTION (hpiinbuf ,

  " . hpibuffer" )

  # pragma DA TA_SECTION (hpioutbuf ,

  " . hpibuffer" )

  void main ()

  { char hpidatacnt ;

  HPIFRAME  3 hpiinbufpt r = hpiinbuf ;

  HPIFRAME  3 hpiout bufpt r = hpiout buf ;

  c54_init () ;

  ser0inwrcnt = 1 ;

  ser0out rdcnt = 5 ;

  ser0inrdcnt = 5 ;

  ser0outwrcnt = 1 ;

  ser0flag = 0 ;

  for ( ; ;) {

  if (hpirecflag > = 1) {

  hpirecflag = 0 ;

  if (hpiinbufpt r - > head = = 0xaa) {

  hpiout bufpt r - > head = 0xaa00 + hpiinbufpt r

  - > lengt h ;

  hpiout bufpt r - > f unc = hpiinbufpt r - > f unc ;

  for (hpidatacnt = 0 ;hpidatacnt hpiinbufpt r

  - > lengt h ;hpidatacnt + + )

  hpiout bufpt r - > data[ hpidatacnt ] =

  hpiinbufpt r - > data[ hpidatacnt ] ;

  hpidsp_host () ;  }  }  }  }

TMS320VC5402與單片機(jī)的HPI口通信設(shè)計(jì)

圖2  主機(jī)編程流程圖

  3  結(jié)束語

  DSP 與單片機(jī)的混合系統(tǒng)設(shè)計(jì),可實(shí)現(xiàn)雙方優(yōu)勢互補(bǔ),在信號(hào)處理及控制顯示電路設(shè)計(jì)中是一款較佳的設(shè)計(jì)方案.


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉