原创 PIC32MX795F12L单片机DMA方式UART数据传输的研究(上)

2016-4-8 09:43 2361 18 18 分类: MCU/ 嵌入式 文集: 硬件开发学习

这段时间主要研究了该单片机的串口通信,经过对所有遇到问题的解决,最终掌握了DMA方式UART数据正确传输,为多频中波发射机控制器与上位机通讯打下了基础。

一、PIC32单片机基本知识概要

有了之前8位和16位单片机开发基础,对32位单片机的学习开发大有裨益,但是以下有关PIC32单片机相关的基础知识必不可少。

1PIC32型单片机是32位单片机,有必要对其变量类型进行介绍,与8位和16位单片机变量类型不同,int型变量表示32位有符号整数(longint是同义词),PIC32RAM存储器存储整个整形变量的空间开销是8位或16位单片机的两倍;char整形变量为8位单字节变量,其数据范围从-128--+127short变量为16位变量,其数据范围从-32768--+32767float32位变量,long double64位变量。

                              绘图1.jpg

2、单片机不能处理多线程任务,因此其灵魂是中断,中断机制的本质是中断由异步时间触发,没有任何函数调用中断服务例程,因此中断服务程序不可传递参数,也没有返回值,其他程序无法直接电泳中断服务函数;PIC32单片机外部中断源主要有:外部中断源包括串行异步通信接口UART中断、串行同步通信接口SPI/I2C中断、电平触发检测功能的外部引脚、并行主控端口中断等,内部中断源包括内部核心定时器、普通定时器、模数转换器、模拟比较器、实时时钟和日历模块、Flash控制器、软中断、DMA中断等。

    每个中断源都有相应的控制位,通过按逻辑成组地分布于各特殊功能寄存器中,如中断使能位(中断源外围设备名称后加IE后缀)、中断标志位(后缀IF)、组优先级(后缀IP,共有7个,IP0-IP7,其中IP7最高)、子优先级。PIC32按优先级排序各中断源如下:

绘图2.jpg
绘图3.jpg

多重向量中断管理是为了使处理器的时间开销最小并能快速响应高优先级的中断,通过使用向量中断(vectored interrupt)和多寄存器集(multiple register set),尽管PIC32单片机拥有多达96个中断源,但受MIPS内核的限制,中断向量的个数最多只有64,因此PIC32的设计师将一些属于相同外围设备的中断成组地指向同一个向量。如下:

绘图4.jpg

绘图5.jpg

 

初始化函数采用多重向量形式,具体函数为INTEableSystemMultivectoredInt();

二、本项目的相关硬件电路

本项目采用的单片机型号为PIC32MX795F12L,其串口通信UART部分具体电路如下所示:

绘图6.jpg

共使用单片机三个UART口,分别为UART1UART4UART5,采用RS422接口协议进行数据传输,因此所有信号由单片机输出后经以下电平转换电路进行差分输出和输入:

绘图7.jpg

需要说明的是U5U6芯片(MAX3491)的REN\DE两个引脚,当前者为低电平后者为高电平时串口读写皆有效。

         由于触摸屏上位机的通信口采用的是RS232接口,因此在422传输的末端采用了RS422RS232的转接口,如下图所示:

绘图8.jpg

需要注意的是该模块输入接口的TX口应与MAX3491芯片的RX口相接,二者需要共地。

         与上位机串口通信的所有实验皆通过在PC机上采用串口调试助手完成,如下图所示:

绘图9.jpg

 

文章评论0条评论)

登录后参与讨论
我要评论
0
18
关闭 站长推荐上一条 /2 下一条