隨著能源需求的日益增長(zhǎng),科技的日趨智能化,復(fù)雜高效的多機(jī)控制,已日趨成為人們生產(chǎn)生活必然趨勢(shì)。中科昊芯順應(yīng)時(shí)代要求,推出適用于高精度工業(yè)自動(dòng)化運(yùn)動(dòng)控制的新版HXS320F28034數(shù)字信號(hào)處理器DSP,其LIN模塊LIN總線收發(fā),以28位寄存器可編程實(shí)現(xiàn)228種不同波特率,以匹配多種20kbps以下總線傳輸需求,從而更加高效地助力于工程師,可實(shí)現(xiàn)1片主DSP,與16片從DSP間的控制指令收發(fā),廣泛應(yīng)用于電動(dòng)汽車(chē)、智能家居等高復(fù)雜度控制領(lǐng)域。
自平頭哥半導(dǎo)體有限公司的劍池集成開(kāi)發(fā)環(huán)境(簡(jiǎn)稱“CDK”)支持HX2000系列芯片調(diào)試以來(lái),本期以USB_LIN通信收發(fā)實(shí)例講解LIN網(wǎng)絡(luò)通信功能。
HX2000系列LIN總線通信格式如下,可通過(guò)SCIGCR1[LINMODE]配置,選擇SCI/LIN模式;通過(guò)SCIGCR1[CLK_MASTER],選擇主/從機(jī)模式;通過(guò)SCIGCR1配置,選擇所需的傳輸格式參數(shù);通過(guò)配置MBUFMODE位,選擇多緩沖模式;通過(guò)編程BRSR寄存器,配置傳輸波特率;通過(guò)SCIGCR1[SWnRST]使能,復(fù)位釋放LIN總線模塊;通過(guò)SCIFORMAT[LENGTH]配置,實(shí)現(xiàn)1~8字節(jié)的總線通信傳輸,過(guò)程為:
PC端通過(guò)LIN收發(fā)器,向DSP發(fā)送無(wú)條件幀頭,DSP通過(guò)LINID[RECEIVEID]接收有效幀ID,將通過(guò)SCISETINT[SETIDINT]觸發(fā)ID有效中斷:根據(jù)該ID所對(duì)應(yīng)的幀屬性,確定主機(jī)的傳輸狀態(tài);若為主機(jī)發(fā)送,則通過(guò)SCIGCR1[RXENA]使能打開(kāi)接收線,由LINRDx寄存器,通過(guò)GPIO定義的LINRX引腳,接收來(lái)自LIN收發(fā)器發(fā)送的幀數(shù)據(jù);若為主機(jī)接收,需延遲一段幀時(shí)隙,以完成同步幀、ID有效幀接收操作后,由DSP的LINTDx寄存器,通過(guò)SCIGCR1[TXENA]使能打開(kāi)發(fā)送線,通過(guò)GPIO所定義的LINTX引腳,發(fā)送數(shù)據(jù)給LIN收發(fā)器,通過(guò)LIN收發(fā)器向PC端發(fā)送數(shù)據(jù)。
由此設(shè)計(jì)USB_LIN通信收發(fā)實(shí)例:采用LIN、LIN傳輸芯片與USB_LIN轉(zhuǎn)換模塊,通過(guò)USB_LIN網(wǎng)絡(luò)調(diào)試軟件,向CPU發(fā)送任意一組數(shù)據(jù),CPU接收所發(fā)送的數(shù)據(jù),硬件連接如下圖所示:
基于以上分析,在CDK上開(kāi)發(fā)LIN通信程序,代碼包括:LIN的GPIO配置、初始化參數(shù)配置、LIN幀頭ID接收中斷判斷服務(wù)程序,LIN總線發(fā)送與接收程序,主程序調(diào)用執(zhí)行。主要代碼如下:
intmain(void){ /*系統(tǒng)時(shí)鐘初始化*/InitSysCtrl(); /*LIN的GPIO引腳配置*/InitLinaGpio(); /*LIN_LIN功能參數(shù)配置*/LIN_LIN_init();/ /*關(guān)中斷*/InitPieCtrl(); /*清中斷*/IER=0x0000;IFR=0x0000; /*初始化中斷向量表*/InitPieVectTable();EALLOW; /*ID有效掩碼匹配中斷,用于判斷主機(jī)的傳輸狀態(tài)*/PieVectTable.LIN1INTA=&LIN1_isr;EDIS; /*打開(kāi)CPU的IER中斷*/IER|=M_INT9; /*打開(kāi)PIE對(duì)應(yīng)的中斷*/PieCtrlRegs.PIEIER9.bit.INTx4=1; /*打開(kāi)全局中斷*/EINT; /*LIN中斷及ID配置*/LIN_interrupt_init(); /*ID掩碼發(fā)送,用于生成幀頭*/LinaRegs.LINID.bit.IDBYTE=LIN_ID; while(1){ /*LIN發(fā)送*/receive_data=LIN_trans();} return0;}
CDK上開(kāi)發(fā)LIN通信收發(fā)程序,編譯結(jié)果為:
編譯通過(guò)后,就可以開(kāi)始調(diào)試了,調(diào)試結(jié)果為:
調(diào)試后,可通過(guò)USB_LIN網(wǎng)絡(luò)通信軟件,查看發(fā)送與接收到的數(shù)據(jù)如下圖:
-
芯片
+關(guān)注
關(guān)注
454文章
50460瀏覽量
421968 -
LIN
+關(guān)注
關(guān)注
4文章
216瀏覽量
40243
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論