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