以DSP为核心的无线定位系统的方案设计
时间:08-30
来源:互联网
点击:
系统软件设计
系统的软件设计主要包括,多通道缓冲串口的初始化,串口中断服务程序,并行装载程序设计,TL16C550C的初始化及HPI设计等。
程序设计应注意的问题
(1)McBSP工作在数据接收中断方式,因此全局中断和串口中断的相应位应该合理设置。同时,在设置中断向量表时,使中断向量表的位置与处理器模式状态寄存器PMST中的中断向量指针IPTR相对应,使IPTR的9位地址指向128字的中断向量所在的程序页,同时,中断向量表要严格按照C5402规定的格式编写,否则不能正确地产生需要的中断结果。
(2)要实现DSP数据采集系统的脱机独立运行,程序装载十分关键。C5402(A)进行并行装载,要求AT29LV1024中的程序数据流严格按照并行装载的格式,依次给C5402(B)装载程序、C5402(A)自身执行程序,C5402(B)的程序装载到片内DRAM和片外SRAM中。
(3)注意到系统设计中,C5402(B)的HPI口既用来进行程序装载,又作为两片DSP通信接口,为了避免混乱,在C5402(B)的程序中应将IFR中INT2的相应位清零,最好在IMR中屏蔽INT2。
(4)为了实现两路A/D和C5402之间的时序匹配,避免数据冲突,需要注意C5402采样率发生寄存器SRGR1中CLKGDV位的设置,使C5402工作时钟周期大于两个串口中断的响应时间。
TL16C550C的软件流程
TL16C550C 初始化程序主要完成波特率及其它工作寄存器的设置。这里设置TL16C550C工作模式为8位数据位,2位停止位,奇校验状态。TL16C550C的软件设置流程如图5所示。
图5 TL16C55C工作的软件流程(略)
串口接收的部分初始化程序
下面根据多通道缓冲串口的特性和两路串行A/D工作的要求,主要介绍一下串口接收的软件设计和串口部分关键设置。
;=====初始化串口0========
stm #0, SPSA0
stm #0000h, SPSD0 ; #0000H SPCR10
stm #1, SPSA0
stm #0000h, SPSD0 ; #0000H SPCR20
stm #2, SPSA0
stm #0040h, SPSD0 ; #0040H RCRC10 每字16位
stm #3, SPSA0
stm #0040h, SPSD0 ; #0040H RCR20 每帧一段,每段一字
stm #6, SPSA0
stm #000fh,SPSD0 ; #0009H SRGR1 时钟周期 CLKG="6".4MHz
stm #7, SPSA0
stm #300fh, SPSD0 ; #3010H SRGR20 帧周期为16个CLKG
stm #0eh,SPSA0
stm #0a04h, SPSD0 ; #0A04H PCR0 FSX, CLKX输出,FSR,
CLKR输入
;=====初始化串口1======
串口1的初始化程序参见串口0
;=====启动接收========
stm #0,SPSA0
stm #0001h, SPSD0 ;启动串口0接收
stm #1,SPSA0
stm #00c0h, SPSD0 ;内部产生时钟产生FSG
stm #0,SPSA1
stm #0001h, SPSD1 ;启动串口1接收
stm #1,SPSA1
stm #00c0h, SPSD1 ;内部产生时钟产生FSG
;==串口0接收中断子程序===
.sect "brint0"
host_brint0:
rsbx intm ;关中断
ldm drr0,A
stl A,*ar4+ ; 接收
:::
其它处理程序
rete
结束语
本文利用两片DSP,根据TM320C5402多通道缓冲串口的特点,提出了由四个阵列天线传感器阵元组成的DOA估计硬件设计方案,并给出了系统独立工作的硬件原理图和软件设计的部分关键程序。并行装载模式和HPI装载模式同时使用,有效利用了系统资源,减小成本,同时TL16C550C的使用实现了DSP与PC机的高速串行通信。
系统的软件设计主要包括,多通道缓冲串口的初始化,串口中断服务程序,并行装载程序设计,TL16C550C的初始化及HPI设计等。
程序设计应注意的问题
(1)McBSP工作在数据接收中断方式,因此全局中断和串口中断的相应位应该合理设置。同时,在设置中断向量表时,使中断向量表的位置与处理器模式状态寄存器PMST中的中断向量指针IPTR相对应,使IPTR的9位地址指向128字的中断向量所在的程序页,同时,中断向量表要严格按照C5402规定的格式编写,否则不能正确地产生需要的中断结果。
(2)要实现DSP数据采集系统的脱机独立运行,程序装载十分关键。C5402(A)进行并行装载,要求AT29LV1024中的程序数据流严格按照并行装载的格式,依次给C5402(B)装载程序、C5402(A)自身执行程序,C5402(B)的程序装载到片内DRAM和片外SRAM中。
(3)注意到系统设计中,C5402(B)的HPI口既用来进行程序装载,又作为两片DSP通信接口,为了避免混乱,在C5402(B)的程序中应将IFR中INT2的相应位清零,最好在IMR中屏蔽INT2。
(4)为了实现两路A/D和C5402之间的时序匹配,避免数据冲突,需要注意C5402采样率发生寄存器SRGR1中CLKGDV位的设置,使C5402工作时钟周期大于两个串口中断的响应时间。
TL16C550C的软件流程
TL16C550C 初始化程序主要完成波特率及其它工作寄存器的设置。这里设置TL16C550C工作模式为8位数据位,2位停止位,奇校验状态。TL16C550C的软件设置流程如图5所示。
图5 TL16C55C工作的软件流程(略)
串口接收的部分初始化程序
下面根据多通道缓冲串口的特性和两路串行A/D工作的要求,主要介绍一下串口接收的软件设计和串口部分关键设置。
;=====初始化串口0========
stm #0, SPSA0
stm #0000h, SPSD0 ; #0000H SPCR10
stm #1, SPSA0
stm #0000h, SPSD0 ; #0000H SPCR20
stm #2, SPSA0
stm #0040h, SPSD0 ; #0040H RCRC10 每字16位
stm #3, SPSA0
stm #0040h, SPSD0 ; #0040H RCR20 每帧一段,每段一字
stm #6, SPSA0
stm #000fh,SPSD0 ; #0009H SRGR1 时钟周期 CLKG="6".4MHz
stm #7, SPSA0
stm #300fh, SPSD0 ; #3010H SRGR20 帧周期为16个CLKG
stm #0eh,SPSA0
stm #0a04h, SPSD0 ; #0A04H PCR0 FSX, CLKX输出,FSR,
CLKR输入
;=====初始化串口1======
串口1的初始化程序参见串口0
;=====启动接收========
stm #0,SPSA0
stm #0001h, SPSD0 ;启动串口0接收
stm #1,SPSA0
stm #00c0h, SPSD0 ;内部产生时钟产生FSG
stm #0,SPSA1
stm #0001h, SPSD1 ;启动串口1接收
stm #1,SPSA1
stm #00c0h, SPSD1 ;内部产生时钟产生FSG
;==串口0接收中断子程序===
.sect "brint0"
host_brint0:
rsbx intm ;关中断
ldm drr0,A
stl A,*ar4+ ; 接收
:::
其它处理程序
rete
结束语
本文利用两片DSP,根据TM320C5402多通道缓冲串口的特点,提出了由四个阵列天线传感器阵元组成的DOA估计硬件设计方案,并给出了系统独立工作的硬件原理图和软件设计的部分关键程序。并行装载模式和HPI装载模式同时使用,有效利用了系统资源,减小成本,同时TL16C550C的使用实现了DSP与PC机的高速串行通信。
GPS 传感器 DSP 电压 PLC 总线 CPLD 电路 CMOS 相关文章:
- 是福音还是侵犯隐私?先进定位技术可精确判断位置(09-12)
- 基于位置的服务在3G系统中的应用(上)(09-30)
- 基于位置的服务在3G系统中的应用(下)(09-30)
- 基于GPS的车辆导航及GPRS网络监控(10-02)
- 便携时代风起云涌,Wi-Fi携手微型硬盘引领潮流(11-18)
- TFT-LCD在GPS导航仪中的应用(11-26)