1直流电机控制系统设计
Linux下编程实现ARM系统的pwm输出,从而控制直流电动机。可以实现直流电动机得调速转动,也可以使其恒速转动。
2采用UP-NETARM2410-S嵌入式实验平台.PC机Pentium 500以上,硬盘10G以上,
Pc机操作系统REDHAT LINUX 9.0+MINICOM+ARM LINUX开发环境
3 pwm发生器用到的寄存器有 1,。TCFG0定时器配置寄存器0 2.TCFG1定时器配置寄存器1 3TCON定时器控制寄存器
4TCNTB0&TCMPB0定时器计数缓冲区寄存器和比较缓冲区寄存器
5TCNT00定时器观察寄存器 4硬件设计(框图,连线图) 5软件设计。程序 函数的流程图:
dcm_main.c直流电动机调速控制程序 #include
#define DCM_IOCTRL_SETPWM #define DCM_TCNTB0 static int dcm_fd = -1;
char *DCM_DEV=\void Delay(int t) {
(0x10)
(16384)
}
int i; for(;t>0;t--)
for(i=0;i<400;i++);
/****************************************************************/
int main(int argc, char **argv) {
int i = 0; int status = 1; int setpwm = 0;
int factor = DCM_TCNTB0/1024;
if((dcm_fd=open(DCM_DEV, O_WRONLY))<0){ } for (;;) {
for (i=-512; i<=512; i++) {
if(status == 1)
setpwm = i;
printf(\opening %s device\\n\DCM_DEV); return 1;
else
setpwm = -i;
ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm
* factor)); } } }
Delay(500);
printf(\= %d \\n\setpwm);
status = -status;
close(dcm_fd); return 0;
6 简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎
是不可能的。
引导加载程序是系统加电后运行的第一段软件代码。 1.
在PC机器中:PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的OS BootLoader(比如,LILO和GRUB等)一起组成。BIOS在完成硬件检测和资源分配后,将硬盘MBR中的BootLoader读到系统的RAM中,然后将控制权交给OS BootLoader。BootLoader的主要运行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入口点去运行,也即开始启动操作系统。 2.
在专用的嵌入式板子运行GNU/Linux系统已经变得越来越流行。一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:
1、 引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。 2、 Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。
3、 文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ramdisk来作为rootfs。
直流电机控制系统设计



