嵌入式系统课程设计ARM9串行接收发送驱动程序设计_第1页
嵌入式系统课程设计ARM9串行接收发送驱动程序设计_第2页
嵌入式系统课程设计ARM9串行接收发送驱动程序设计_第3页
嵌入式系统课程设计ARM9串行接收发送驱动程序设计_第4页
嵌入式系统课程设计ARM9串行接收发送驱动程序设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、x学校课 程 设 计 报 告课程名称: 嵌入式系统 设计题目:arm9串行接收发送驱动程序设计院 系: 电气信息学院 班 级: 姓 名: 学 号: 指导教师: 设计时间: 目 录一、设计题目2二、设计内容2三、硬件原理2四、程序流程图21接收程序流程图42、发送程序流程图43、收发程序流程图5五、程序设计61、基于arm9微处理器的串行接收驱动程序设计62、基于arm9微处理器的串行发送驱动程序设计73、基于arm9微处理器的串行接收发送驱动程序设计10六、心得体会16七、参考文献16一、设计题目(1)基于arm9微处理器的串行接收驱动程序设计(2)基于arm9微处理器的串行发送驱动程序设计(

2、3)基于arm9微处理器的串行接收发送驱动程序设计二、设计内容1 (1)基于arm9微处理器的串行接收驱动程序设计初始化程序设计 串行接收程序设计(2)基于arm9微处理器的串行发送驱动程序设计初始化程序设计串行发送程序设计(3)基于arm9微处理器的串行接收发送驱动程序设计初始化程序设计串行接收发送程序设计2 实现pc机与el-arm-830开发系统的串行通讯,具体通讯方式与内容:(1) 帧格式:正常模式,无奇偶校验,一个停止位,8个数据位(2)串行发送:每过一定时间,隔2行发送字符串“how are you!”,通过pc机的串口调试助手接收。(3) 串行接收:将接收到的5个字符存储到以0x

3、c300000为首地址的sdram中,通过串口调试助手发送字符.(4)当接收到串口调试助手界面发送的“1”,发送第1屏信息;当接收到串口调试助手界面发送的“2”,发送第2屏信息;当接收到串口调试助手界面发送的“3”,发送第3屏信息设计要求(1)流程图设计,流程图上每个任务的文字说明。(2)完整的程序清单。(3)通过在pc机和el-arm-830开发平台上的调试。三、硬件原理硬件原理如图所示,u2 max232是rs-232c的接口电路,实现电平转换作用。能将来自s3c44b0x一侧的0v3.3v正逻辑电平转换为符合eia标准的负逻辑电平输出,既当s3c44b0x发出0v电平时,经过max232

4、转换为3v15v电平,当s3c44b0x发出3.3v电平时,经过max232转换为-3v-15v电平;能将来自pc机一侧的标准rs-232电平,转换为ttl电平输出,既当max232接收到3v15v电平时,能转换为0v电平传向s3c44b0x一侧,当max232接收到-3v-15v电平时,能转换为5v电平传向s3c44b0x一侧。通过这种电平转换,实现s3c44b0x与标准rs-232c设备通讯。图10-8中r1、r2是限流电阻,起保护作用。原因是,max232向s3c44b0x一侧的电平信号是05v,而s3c44b0x仅能发出/接收03.3v电平,逻辑高电平不匹配,通过限流电阻,简单实现两种

5、电平的接口。串行通讯原理图四、程序流程图1接收程序流程图开始初始化检测接收寄存器是否有有效数据noyes读出数据结束2、发送程序流程图开始初始化检测发送寄存器是否为空noyes发送数据结束3、收发程序流程图开始初始化检测是否有有效数据noyesyes检测有效数据是否为1发送第1屏数据noyes检测有效数据是否为2no发送第2屏数据yes检测有效数据是否为3no发送第3屏数据五、程序设计1、基于arm9微处理器的串行接收驱动程序设计ulcon0equ0x01d00000 ;/0x03 无校验,一个停止位;ucon0equ0x01d00004 ;/0x0c;ufcon0equ0x01d00008

6、;/0x01;umcon0equ0x01d0000c ;/0x00;urxh0equ0x01d00024 ;/数据寄存器ubirdiv0equ0x01d00028 ;/波特率设置utrstat0equ0x01d00010 ;/状态寄存器cntequ5pconeequ0x01d20028pupeequ0x01d20030wdtconequ0x01d30000;wdtconarea t_txd,code,readonlyentry ldrr13,=0xc800000blinitldrr4,=0xc300000 ldr r5,=cntloop ldr r3,=utrstat0 ldr r2,r3 t

7、st r2,#0x01 beq loopldr r0,=urxh0 ldrbr1,r0 strb r1,r4,#1 subs r5,r5,#1 bne looploop1 b loop1delayldrr6,=0xffffdelay1subsr6,r6,#1bnedelay1movpc,r14initldrr1,=wdtconldrr0,=0x0strr0,r1 ldrr1,=pcone ldrr0,=0x28 strr0,r1 ldrr1,=pupe ldrr0,=0xff strr0,r1 ldrr1,=ulcon0 ldrr0,=0x03 strr0,r1 ldr r1,=ucon0 l

8、dr r0,=0x245 str r0,r1ldr r1, = ufcon0 ldr r0, = 0x0 str r0, r1ldr r1, = umcon0 ldr r0, = 0x0 str r0, r1 ldr r1, = ubirdiv0;频率60m ldr r0, = 0x20;(取整)(60000000/16/115200)-1 str r0, r1 movpc,lrend2、基于arm9微处理器的串行发送驱动程序设计ulcon0 equ 0x01d00000 ; uart线控制器地址ucon0 equ 0x01d00004 ; uart控制器地址ufcon0 equ 0x01d0

9、0008 ; uart fifo控制器地址umcon0 equ 0x01d0000c ; uart modem控制器地址utxh0 equ 0x01d00020 ; 发送数据寄存器地址urxh0 equ 0x01d00024 ; 接收数据寄存器ubirdiv0 equ 0x01d00028 ; 波特率除数寄存器utrstat0 equ 0x01d00010 ; uart发送/接收状态寄存器地址pconeequ0x01d20028; 通用e口配置寄存器地址pupeequ0x01d20030; 通用e口上拉电阻配置寄存器地址wdtconequ0x01d30000; wdt控制器地址 area t_

10、txd,code,readonly;欢宕攵?t_txd entry ;程序入口ldrr13,=0x800000;设置堆栈指针bl init ;调用初始化子程序子程序m1ldrr0,=s1_l1 ;发送1行字符bltxd_lineldrr1,=0xfffff;延时bldelaybm1;重复发送;-delay sub.-delay;延时子程序subsr1,r1,#1bnedelaymovpc,r14;-init sub.-init;初始化子程序ldrr1,=wdtcon;关闭wdt,以免影响程序调试ldrr0,=0x0strr0,r1ldrr1,=pcone;配置通用i/o口,使pe2为rxd0,

11、pe1为txd0 ldrr0,=0x28 strr0,r1 ldrr1,=pupe;配置e口无上挂电阻 ldrr0,=0xff strr0,r1ldrr1,=ulcon0;配置uart线控制器:正常模式,无奇偶校验,一个停止位,8个数据位 ldr r0,=0x03 strr0,r1ldr r1,=ucon0;配置uart控制器:rx边沿触发,tx电平触发,;禁用延时中断,使用rx错误中断,正常操作;模式,中断请求或表决模式 ldr r0,=0x245 str r0,r1ldr r1, = ufcon0;配置uart fifo控制器:禁用 fifoldr r0, = 0x0 str r0, r1

12、ldr r1, = umcon0;配置uart modem控制器:禁止使用afcldr r0, = 0x0 str r0, r1 ldr r1, = ubirdiv0;配置波特率,系统主频为频率60m ldr r0, = 0x20 ;(取整)(60000000/16/115200)-1=32 str r0, r1 movpc,lr;子程序返回 ;-txd_line sub.-txd_line;发送1行字符串子程序 movr4,lr;保存堆栈指针txd_line1 ldrbr1,r0,#1 andsr1,r1,#0xff moveqpc,r4 bltxd_byte btxd_line1;-txd

13、_byte sub.-txd_byte;发送1字符子程序 movr5,lr ldr r3,=utrstat0 ldr r2,r3 tst r2,#0x02 beq txd_byte ldr r2,=utxh0 strb r1,r2 ldrr1,=0xffff bldelay movpc,r5;- s1_l1dcbhow are you!,&a,&a,&d,0 0020;定义字符串 mov r0,r0 end3、基于arm9微处理器的串行接收发送驱动程序设计ulcon0equ0x01d00000 ; uart线控制器地址ucon0equ0x01d00004; uart控制器地址ufcon0equ

14、0x01d00008; uart fifo控制器地址umcon0equ0x01d0000c; uart modem控制器地址utxh0equ0x01d00020 ; 发送数据寄存器地址urxh0 equ0x01d00024; 接收数据寄存器ubirdiv0 equ0x01d00028; 波特率除数寄存器utrstat0equ0x01d00010 ; uart发送/接收状态寄存器地址pconeequ0x01d20028; 通用e口配置寄存器地址pupeequ0x01d20030; 通用e口上拉电阻配置寄存器地址wdtconequ0x01d30000; wdt控制器地址 area t_uart,c

15、ode,readonlyentry ;程序入口ldrr13,=0x800000;设置堆栈指针bl init;调用初始化子程序子程序m1 ldr r3,=utrstat0 ldr r2,r3 tst r2,#0x01 beq m1ldr r0,=urxh0 ldrbr1,r0 cmpr1,#1 bnem2 bltxd_screen1 bm1m2cmpr1,#2bnem3bltxd_screen2bm1m3cmpr1,#3bnem1bltxd_screen3bm1txd_screen1;-txd_screen 1-movr6,lrldrr0,=s1_l1bltxd_lineldrr0,=s1_l2

16、bltxd_lineldrr0,=s1_l3bltxd_lineldrr0,=s1_l4bltxd_lineldrr0,=s1_l5bltxd_lineldrr0,=s1_l6bltxd_lineldrr0,=s1_l7bltxd_lineldrr0,=s1_l8bltxd_linemovpc,r6txd_screen2;-txd_screen 2-movr6,lrldrr0,=s2_l1bltxd_lineldrr0,=s2_l2bltxd_lineldrr0,=s2_l3bltxd_lineldrr0,=s2_l4bltxd_lineldrr0,=s2_l5bltxd_lineldrr0,

17、=s2_l6bltxd_lineldrr0,=s2_l7bltxd_lineldrr0,=s2_l8bltxd_linemovpc,r6txd_screen3;-txd_screen 3-movr6,lrldrr0,=s3_l1bltxd_lineldrr0,=s3_l2bltxd_lineldrr0,=s3_l3bltxd_lineldrr0,=s3_l4bltxd_lineldrr0,=s3_l5bltxd_lineldrr0,=s3_l6bltxd_lineldrr0,=s3_l7bltxd_lineldrr0,=s3_l8bltxd_linemovpc,r6;-delay sub.-d

18、elay;延时子程序subsr1,r1,#1bnedelaymovpc,r14;-init sub.-init;初始化子程序ldrr1,=wdtcon;关闭wdt,以免影响程序调试ldrr0,=0x0strr0,r1ldrr1,=pcone;配置通用i/o口,使pe2为rxd0 ldrr0,=0x28 strr0,r1 ldrr1,=pupe;配置e口无上挂电阻 ldrr0,=0xff strr0,r1ldrr1,=ulcon0;配置uart线控制器:正常模式,无;奇偶校验,一个停止位,8个数据位 ldrr0,=0x03 strr0,r1ldr r1,=ucon0;配置uart控制器:rx边沿

19、触发,tx;电平触发,;禁用延时中断,使用rx错误中断,正;常操作;模式,中断请求或表决模式 ldr r0,=0x245 str r0,r1ldr r1, = ufcon0;配置uart fifo控制器:禁用 fifoldr r0, = 0x0 str r0, r1ldr r1, = umcon0;配置uart modem控制器:禁止使;用afcldr r0, = 0x0 str r0, r1 ldr r1, = ubirdiv0;配置波特率,系统主频为频率60m ldr r0, = 0x20;(取整)(60000000/16/115200)-1=32 str r0, r1 movpc,lr;

20、子程序返回;-txd_line sub.-txd_line;发送1行字符串子程序 movr4,lr;保存堆栈指针txd_line1 ldrbr1,r0,#1 andsr1,r1,#0xff moveqpc,r4 bltxd_byte btxd_line1;-txd_byte sub.-txd_byte;发送1字符子程序 movr5,lr ldr r3,=utrstat0 ldr r2,r3 tst r2,#0x02 beq txd_byte ldr r2,=utxh0 strb r1,r2 ldrr1,=0xffff bldelay movpc,r5;-screen 1- s1_l1dcb *

21、,0xa,0xa,0xa,0s1_l2dcb* *,0xa,0xa,0xa,0s1_l3dcb* welcom to use el-arm-830 *,0xa,0xa,0xa,0s1_l4dcb* *,0xa,0xa,0xa,0s1_l5dcb* this is screen 1 *,0xa,0xa,0xa,0s1_l6dcb* 2010-12-01 *,0xa,0xa,0xa,0s1_l7dcb* *,0xa,0xa,0xa,0s1_l8dcb *,0xa,0xa,0xa,0;-screen 2- s2_l1dcb *,0xa,0xa,0xa,0s2_l2dcb* *,0xa,0xa,0xa,0s2_l3dcb* welcom to use el-arm-830 *,0xa,0xa,0xa,0s2_l4dcb* *,0xa,0xa,0xa,0s2_l5dcb* this is screen2 *,0xa,0xa,0xa,0s2_l6dcb* 2010-12-01 *,0xa,0xa,0xa,0s2_l7d

温馨提示

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

评论

0/150

提交评论