随着能源需求的日益增长,科技的日趋智能化,复杂高效的多机控制,已日趋成为人们生产生活必然趋势。中科昊芯顺应时代要求,推出适用于高精度工业自动化运动控制的新版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网络通信软件,查看发送与接收到的数据如下图:
-
芯片
+关注
关注
453文章
50378浏览量
421700 -
LIN
+关注
关注
4文章
216浏览量
40236
发布评论请先 登录
相关推荐
评论