嵌入式系统技术实验报告_第1页
嵌入式系统技术实验报告_第2页
嵌入式系统技术实验报告_第3页
嵌入式系统技术实验报告_第4页
嵌入式系统技术实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 南 京 理 工 大 学嵌入式系统实验报告姓名:学 号:学院(系):班级: 指导老师: 实验日期: 2016年1月 实验一:熟悉Linux 开发环境一、实验目的 熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。二、实验仪器 硬件:UP-NETARM2410-S嵌入式实验平台、PC机。 软件:PC机操作系统REDHAT LINUX 9.0MINICOMARM-LINUX开发环境三、实验内容 本次实验使用Redhat Linux 9.0操作系

2、统环境,安装ARM-Linux的开发库及编译器。创建一个新目录,并在其中编写hello文件。学习在Linux下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。4、 实验步骤1、建立工作目录rootzxt smile# mkdir hellorootzxt smile# cd hello2、编写程序源代码实际的hello.c源代码较简单,如下:include <stdio.h>void main(void)printf(“hello world n”);用下面的命令来编写“hello.c”的源代码,进入hello目录使用vi命令来编辑

3、代码:rootzxt hello# vi hello.c 按“i”或者“a”进入编辑模式,录入上面的代码,完成后按Esc键进入命令状态,再用命令“:wq ”,保存并退出。这样在当前目录下建立了一个名为“hello.c”的文件。3、 编译链接要使上面的“hello.c”程序能够运行,将其经过编译和连接,生成可执行文件。输入 gcc hello.c -o hello 进行编译,再输入 ./hello 运行程序,观察结果1。4、在之前的基础上,进入hello文件,输入armv4l-unknown-linux-gcc hello.c -o hello 和 cp hello /arm2410s 进行交叉

4、编译,输入 ifconfig eth0 192.168.0.121设置IP;输入telnet 192.168.0.115登入开发板,输入root开始进行挂载:mount -o nolock 192.168.0.121:/arm2410s /mnt ;再通过cd mnt找到hello文件,最后输入./hello 运行程序,观察结果2。5、 实验结果观察实验结果1,屏幕上显示hello world 截图如图1所示: 图 1 运行程序观察结果的输出六、思考题1请简述Makefile的作用,分析其工作机理与流程?makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块

5、分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。 makefile带来的好处就是“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率2. 试简述如何编写和编译可以在目标板上运行的可执行程序?嵌入式开发是在windows下装虚拟机,虚拟机里装Linux,然后再与板子连,可以利用SMB在linux下创建文件,在windows下编辑,然后再在虚拟机里用交叉编译器编译代码生成

6、可执行文件,可执行文件可以通过NFS方式运行,也可以做文件系统烧到板子上 实验二:多线程应用程序设计一、实验目的 了解多线程程序设计的基本原理以及学习pthread库函数的使用。2、 实验仪器 硬件:UP-NETARM2410-S 嵌入式实验平台,PC机。 软件:PC机操作系统REDHAT LINUX 9.0MINICOMARM-LINUX开发环境。三、实验内容 熟悉几个重要的PTHREAD库函数的使用,掌握共享锁和信号量的使用方法。进入/arm2410s/exp/basic/02_pthread目录,运行make产生pthread程序,使用NFS方式连接开发主机进行运行实验。4、 实验步骤1

7、、编写并编译简单的多线程示例程序2、阅读源代及编译应用程序进入exp/basic/02_pthread目录,使用vi编辑器或其他编辑器阅读理解源代码。运行make产生pthread 可执行文件。3、下载和调试切换到minicom终端窗口,使用NFS mount 开发主机的/arm2410s 到/host 目录。进入/host/exp/basic/pthread目录,运行pthread,观察运行结果的正确性。5、 实验结果实验结果如图2.1所示 图 2.1 多线程实验结果截图实验四: A/D 接口实验一、实验目的 了解在linux环境下对S3C2410芯片的8通道10位A/D的操作与控制。二、实

8、验设备及工具 UP-NETARM2410-S嵌入式实验平台、PC机Pentium 500以上,硬盘10G以上。 PC机操作系统REDHAT LINUX 9.0MINICOMARM-LINUX 开发环境三、实验内容 学习A/D接口原理,了解实现A/D系统对于系统的软件和硬件要求。阅读ARM芯片文档,掌握ARM的A/D相关寄存器的功能,熟悉ARM系统硬件的A/D相关接口。利用外部模拟信号编程实现ARM循环采集全部前4路通道,并且在超级终端上显示。四、实验步骤1、阅读理解源码进入/arm2410s/exp/basic/04_ad目录,使用vi编辑器或其他编辑器阅读理解源代码。2、编译应用程序运行ma

9、ke 产生ad 可执行文件rootzxt /# cd /arm2410s/exp/basic/04_ad/rootzxt 04_ad# makerootzxt 04_ad# lsad hardware.h main.o Makefile.bak s3c2410-adc.h bin main.c Makefile readme.txt src3、下载调试换到minicom 终端窗口,使用NFS mount 开发主机的/arm2410s 到/host 目录。telnet 192.168.0.115root/mnt/yaffs mount -t nfs -o nolock 192.168.0.56:

10、/arm2410s /host/mnt/yaffscd ad/mnt/yaffs/adinsmod s3c2410-adc.o/mnt/yaffscd /host/exp/basic/04_ad/host/exp/basic/04_ad./ad本实验运行结果如下图4.1所示 图 2.1 A/D 接口实验运行结果六、思考题1.ARM的A/D功能的相关寄存器有哪几个,对应的地址是什么?2.如何启动ARM开始转换A/D,有几种方式?转化开始时ARM是如何知道转换哪些通道的?如何判断转换结束? 答:方式一:软件启动1) 定义与A/D转换相关的寄存器2) 定义与A/D转换相关的寄存器初始化3) RADC

11、CON=OX1 方式二:硬件启动1) 复位A/D转换器2) 外界用高电平触发ADCCON0 转换开始时知道转换哪通道的方式,通过对ADCCON5:3的为赋值来选择通道。实验五:D/A 接口实验一、实验目的 掌握MAX504 D/A转换芯片的使用方法 掌握不带有D/A的CPU扩展D/A功能的主要方法 了解D/A驱动程序加入内核的方法二、实验仪器 硬件:UP-NETARM2410-S嵌入式实验平台、PC机。 软件:PC 机操作系统REDHAT LINUX 9.0MINICOMARM-LINUX开发环境三、实验内容 了解实现D/A系统对于系统的软件和硬件要求。阅读MAX504芯片文档,掌握 其使用方

12、法。4、 实验步骤 1. 阅读理解源码进入/arm2410s/exp/basic/05_da目录,使用vi编辑器阅读理解源代码。2. 编译应用程序运行make 产生da 可执行文件da_mainrootzxt /# cd /arm2410s/exp/basic/05_da/rootzxt 05_da# makerootzxt 05_da# lsda_main da_main.c da_main.o doc drivers Makefile s3c44b0-spi.h3. 下载调试切换到minicom终端窗口,使用NFS mount开发主机的/arm2410s到/host目录,然后进入/host

13、/exp/05_da/drivers目录,用insmod exio.o命令插入D/A驱动,并用lsmod命令查看是否已经插入。/mnt/yaffscd /host/exp/basic/05_da/host/exp/basic/05_dacd drivers/host/exp/basic/05_da/driversinsmod exio.oUsing exio.o/host/exp/basic/05_da/driverslsmodModule Size Used by Not taintedexio 2384 0 (unused)i2c-tops2 14104 0 (unused)进入/host

14、/exp/basic/05_da目录,运行./da_main,观察运行结果的正确性。/host/exp/basic/05_da./da_main 0 15、 实验结果通过ls查看da_main用insmod exio.o命令插入D/A驱动,并用lsmod命令查看是否已经插入。进入/host/exp/basic/05_da目录,运行./da_main,观察运行结果如下图5.1所示,电压为1v: 图 5.1 运行da_main 输出结果6、 思考题1D/A 转换器的分类。D/A 转换器的内部电路构成无太大差异,一般按输出是电流还是电压、能否作乘法运算等 进行分类。大多数

15、0;D/A 转换器由电阻阵列和 n 个电流开关(或电压开关)构成。按数字输入 值切换开关,产生比例于输入的电流(或电压)。 l 电压输出型(如 TLC5620) 电压输出型 D/A 转换器虽有直接从电阻阵列输出电压的,但一般采用内置输出放大器以低 阻抗输出。直接输出电压的器件仅用于高阻抗负载,由于无输出放大器部分的延迟,故常 作为高速 D/A 转换器使用。 l 电流输出型(如 THS5661A) 电流输出型 D/A 

16、转换器很少直接利用电流输出,大多外接电流电压转换电路得到电压输 出,后者有两种方法:一是只在输出引脚上接负载电阻而进行电流电压转换,二是外接 运算放大器。用负载电阻进行电流电压转换的方法,虽可在电流输出引脚上出现电压, 但必须在规定的输出电压范围内使用,而且由于输出阻抗高,所以一般外接运算放大器使 用。此外,大部分 CMOS DA 转换器当输出电压不为零时不能正确动作,所以必须外接运算 放大器。当外接运算放大器进行电流电压转换时,则电路构成基本上与内置放大器的电压 输出型相同,这时由于在 D/A

17、 转换器的电流建立时间上加入了运算放入器的延迟,使响应 变慢。此外,这种电路中运算放大器因输出引脚的内部电容而容易起振,有时必须作相位 补偿。 l 乘算型(如 AD7533) D/A 转换器中有使用恒定基准电压的,也有在基准电压输入上加交流信号的,后者由于能 得到数字输入和基准电压输入相乘的结果而输出,因而称为乘算型 D/A 转换器。乘算型 D/A 转换器一般不仅可以进行乘法运算,而且可以作为使输入信号数字化地衰减的衰减器及对 输入信号进行调制的调制器使用。

18、0;l 一位 D/A 转换器 一位 D/A 转换器与前述转换方式全然不同,它将数字值转换为脉冲宽度调制或频率调制的 输出,然后用数字滤波器作平均化而得到一般的电压输出(又称位流方式),用于音频等场合。 2D/A 转换器的主要技术指标。1)分辩率(Resolution) 指最小模拟输出量(对应数字量仅最低位为1)与最大量(对应数字量所有有效位为1)之比。2)建立时间(Setting Time) 是将一个数字量转换为稳定模拟信号所需的时间,也可以以为是转换时间。DA中常用建立时间来描述其速度,而不是AD中常用的转换速率。一般地,

19、电流输出 DA建立时间较短,电压输出DA则较长。其他指标还有线性度(Linearity),转换精度,温度系数/漂移。3MAX504 的特点及使用方法。由单个5V电源供电电压输出缓冲内部 2.048V 参考电压INL=0.5  LSB(MAX)电压不随温度变化可变的输出范围:0VVDD,VSSVDD      上电复位      串行输出实验六:直流电机实验一、实验目的熟悉ARM本身自带的PWM,掌握相应寄存器的配置。Linux下编程实现

20、ARM系统的PWM输出,从而控制直流电机。了解直流电机的工作原理,学会用软件的方法实现步进电机的脉冲分配。 掌握带有PWM的CPU编程实现其相应功能的主要方法。二、实验内容学习直流电机的工作原理,了解实现电机转动对于系统的软件和硬件要求。学习ARM PWM的生成方法。使用Redhat Linux 9.0 操作系统环境及ARM 编译器,编译直流电机的驱动模块和应用程序。运行程序,实现直流电机的调速转动。三、实验设备及工具硬件:UP-NETARM2410-S 嵌入式实验平台、PC机。软件:PC 机操作系统REDHAT LINUX 9.0MINICOMARM LINUX 开发环境。四、实验步骤1、编

21、译直流电机模块cd /arm2410s/kernel-2410smake menuconfig进入Main Menu / Character devices 菜单,选择DC MOTOR 为模块加载:编译内核模块:make depmakemake modules直流电机模块的编译结果为:/arm2410s/kernel-2410s/drivers/char/s3c2410-dc-motor.o2、编译应用程序cd /arm2410s/exp/basic/10_dcmotor/make生成dcm_main3、运行程序在超级终端中,通过加载NFS 运行编译结果(注意:首先要设定/arm2410s 为

22、NFS 共享目录):mount t nfs o nolock 192.168.0.121:/arm2410s /hostinsmod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.ocd /host/exp/basic/10_dcmotor/./dcm_main程序运行结果:直流电机变速转动。五.实验结果 六、思考题1简述PWM 的基本原理,思考其基本参数的变化对电机转动的影响。 PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任

23、何时刻,满幅值得=的直流供电要么完全有,要么完全无。电压或电流源是以一种通或断的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。变频器大多采用PWM调制的形式进行变频的,也就是说变频器输出的电压其实是一系列的脉冲,脉冲的宽度和间隔均不相等。其大小就取决于调制波和载波的交点,也就是开关频率。开关频率越高,一个周期内脉冲的个数就越多,电流波形的平滑性就越好,但是对其他设备的干扰也越大。载波频率越低或者设置不好,电机就会发出难听的噪音。通过调节开关频率可以实现系统的噪声最小,波形的平滑性最好,同时干扰也是最小的。实验七:步进电机实验一、实验目的了解直流电机和步进电机的工作原理学会Linux下用软件的方法实现步进电机的脉冲分配,用软件的方法代替硬件的脉冲分配器二、实验内容学习步进电机的工作原理,了解实现电机转动对于系统的软件和硬件要求。学习ARM 知识,要掌握I/O 的控制方法。Linux 下编程实现ARM 的四路I/O 通道实现环形脉冲分配用于控制步进电机的转动。三、实验设备及工具硬件:UP-NETARM2410-S 嵌入式实验平台、PC机。软件:PC 机操作系统REDHAT LINUX 9.0MINICOMARM-LINUX开发环境。四、实验步骤1、编译步进电机模块cd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论