涉及到D/A的引脚主要有DAC输出脚P0.26,参考电压引脚,用来给D/A转换器提供参考电压,模拟电源与数字电源VDD/VSS,这个两个电源要分开提供,再不使用DAC时也要将这两个引脚连接到电源,不能悬空,不然系统会不稳定。 DAC的配置也很简单,首先就是将P0.26设置为DAC模式,再一个就是配置DAC控制寄存器DACDR。DAC的控制寄存器DACDR的6-15位是DAC的输出电压数字值,这个数字决定了要输出的电压大小,DAC输出电压的计算方法是: 公式中VDAC即指AC的控制寄存器DACDR的6-15位的值,VREF指的是参考电压,在这次实验电路中用的是3.3V。LPC1768的DAC功能还有DAM中断和定时控制功能,它采用又缓冲方式输出。在这里简单总结一下DAM模式,所谓的DAM模式也就是Direct Memory Access,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式。在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,可以大大节省系统资源。DMA模式又可以分为Single-Word DMA(单字节DMA)和Multi-Word DMA(多字节DMA)两种,其中所能达到的最大传输速率也只有16.6MB/s。DMA有两个技术特征,首先是直接传送,其次是块传送。 DMA工作过程 ⑴ 当进程要求设备输入数据时,CPU把准备存放输入数据的内存起始地址以及要传送的字节数分别送入DMA控制器中的内存地址寄存器和传送字节计数器。 ⑵ 发出数据传输要求的进行进入等待状态。此时正在执行的CPU指令被暂时挂起。进程调度程序调度其他进程占据CPU。 ⑶ 输入设备不断地窃取CPU工作周期,将数据缓冲寄存器中的数据源源不断地写入内存,直到所要求的字节全部传送完毕。 ⑷ DMA控制器在传送完所有字节时,通过中断请求线发出中断信号。CPU在接收到中断信号后,转入中断处理程序进行后续处理。 ⑸ 中断处理结束后,CPU返回到被中断的进程中,或切换到新的进程上下文环境中,继续执行。 DMA与中断的区别 ⑴ 中断方式是在数据缓冲寄存器满之后发出中断,要求CPU进行中断处理,而DMA方式则是在所要求传送的数据块全部传送结束时要求CPU 进行中断处理。这就大大减少了CPU进行中断处理的次数。 ⑵ 中断方式的数据传送是在中断处理时由CPU控制完成的,而DMA方式则是在DMA控制器的控制下,不经过CPU控制完成的。这就排除了CPU因并行设备过多而来不及处理以及因速度不匹配而造成数据丢失等现象。 在DMA方式中,由于I/O设备直接同内存发生成块的数据交换,因此I/O效率比较高。由于DMA技术可以提高I/O效率,因此在现代计算机系统中,得到了广泛的应用。许多输入输出设备的控制器,特别是块设备的控制器,都支持DMA方式。 通过上述分析可以看出,DMA控制器功能的强弱,是决定DMA效率的关键因素。DMA控制器需要为每次数据的传送做大量的工作,数据传送单位的增大意味着传送次数的减少。另外,DMA方式窃取了时钟周期,CPU处理效率降低了,要想尽量少地窃取时钟周期,就要设法提高DMA控制器的性能,这样可以较少地影响CPU出理效率。
|