便携式、低功耗体电信号采集存储系统研究
192K字,其中包括64K字程序空间,64K字数据空间,64K字I/O空间,片内程序空间集成32K字Flash,数据空间集成2.5K字RAM,包括544字DARAM(其中256字与程序空间共享),2K字SARAM。图1给出了TMS320LF2401与CF卡的一种电路连接方框图。CF卡占用TMS320LF2407的I/O空间地址,不需要任何中间接口转换芯片。
5TI公司DSP汇编程序实例
考虑到TI公司的DSP各系列芯片汇编指令的兼容性例于跨平台移植和汇编语言代码的高效性,下面给出基于连接框图将CF卡中一扇区数据(512字节)读到TMS320LF2407片内RAM中汇编程序。READ_A_SECT:
W_CF_RDY:;检测CF卡是否空闲
LDP#0h
INCF_IN,CFCOM_STAT
;读状态寄存器
LALCCF_IN
AND#00FFh
XOR#0050h
BZEND_WAIT_RDY
BW_CF_RDY
END_WAIT_RDY:
SPLK#0000h,CF_OUT
OUTCF_OUT,CFERR_FEA
;写特片寄存器
SPLK#0001h,CF_OUT
OUTCF_OUT,CFSET_COU
;写扇区数寄存器
SARAR3,CF_OUT
OUTCF_OUT,CFSEC_NO
;写扇区号寄存器
SARAR4,CF_OUT
OUTCF_OUT,CFCYL_LOW
;写柱面号寄存器(低字节)
SARAR5,CF_OUT
OUTCF_OUT,CFCYL_HIG
;写柱面号寄存器(高字节)
SARAR6,CF_OUT
OUTCF_OUT,CF_CDH
;写驱动器选择/磁头寄存器
SPLK#0020h,CF_OUT
OUTCF_OUT,CFCOM_STAT
;写命令寄存器
W_CF_DRQ:;检测CF卡是否有数据请求
INCF_IN,CFCOM_STAT
LACLCF_IN
AND#00FFh
XOR#0058h
BZEND_WAIT_DRQ
BW_CF_DRQ
END_WAIT_DRQ:
LARAR2,#0FFh
;作256次循环读取一扇区数据(512字节)
MAR*,AR1
INLOOP:IN*+,CFDATA,AR2
;循环读取数据寄存器
BANZINLOOP,*-,AR1
RET
程序说明:CFDATA为数据寄存器端口地址;CFCOM_STAT为状态/命令寄存器端口地址;CFERR_FEA为特征寄存器端口地址;CFSEC_COU为扇区数寄存器端口地址;CFSEC_NO为扇区号寄存器端口地址;CFCYL_LOW为柱面号寄存器(低字节)端口地址;CFCYL_HIG为柱面号寄存器(高字节)端口地址;AR1、AR3~AR6辅助寄存器为程序入口参数,其中AR1为RAM数据缓冲区的起始地址;AR3~AR6为CF卡各寄存器待赋的值;CF_IN和CF_OUT为变量。程序中没超时处理,在循环读取数据的过程中,最好禁用时间较长的中断。这是因为CF卡在15ms内没有接收到命令就会进入休眠(sleep),因此不论是读还是写扇区,在命令出后15ms内应将数据取出或填充上,否则会出错。
结语
采用TI公司的C24X、C28X系列DSP与CF卡搭建体电信号采集的硬件平台,仅使用很少的外部逻辑。整个系统可以采用低电压3.3V单一电压供电,供电电路非常简单。C24X、C28X系列DSP芯片对片内的各个模块独立供电,工作时可以屏蔽掉没有用到的模块,比如SCI、SPI、CAN总线接口等模块,减少系统的功耗。在系统软件实现上,可以采用交替式双缓存机制,将采集到的数据先存入数据缓冲区中(1扇区占512字节为易)。当数据缓冲区写满时发出溢出中断,对CF卡进行 《便携式、低功耗体电信号采集存储系统研究(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/140231.html
5TI公司DSP汇编程序实例
考虑到TI公司的DSP各系列芯片汇编指令的兼容性例于跨平台移植和汇编语言代码的高效性,下面给出基于连接框图将CF卡中一扇区数据(512字节)读到TMS320LF2407片内RAM中汇编程序。READ_A_SECT:
W_CF_RDY:;检测CF卡是否空闲
LDP#0h
INCF_IN,CFCOM_STAT
;读状态寄存器
LALCCF_IN
AND#00FFh
XOR#0050h
BZEND_WAIT_RDY
BW_CF_RDY
END_WAIT_RDY:
SPLK#0000h,CF_OUT
OUTCF_OUT,CFERR_FEA
;写特片寄存器
SPLK#0001h,CF_OUT
OUTCF_OUT,CFSET_COU
;写扇区数寄存器
SARAR3,CF_OUT
OUTCF_OUT,CFSEC_NO
;写扇区号寄存器
SARAR4,CF_OUT
OUTCF_OUT,CFCYL_LOW
;写柱面号寄存器(低字节)
SARAR5,CF_OUT
OUTCF_OUT,CFCYL_HIG
;写柱面号寄存器(高字节)
SARAR6,CF_OUT
OUTCF_OUT,CF_CDH
;写驱动器选择/磁头寄存器
SPLK#0020h,CF_OUT
OUTCF_OUT,CFCOM_STAT
;写命令寄存器
W_CF_DRQ:;检测CF卡是否有数据请求
INCF_IN,CFCOM_STAT
LACLCF_IN
AND#00FFh
XOR#0058h
BZEND_WAIT_DRQ
BW_CF_DRQ
END_WAIT_DRQ:
LARAR2,#0FFh
;作256次循环读取一扇区数据(512字节)
MAR*,AR1
INLOOP:IN*+,CFDATA,AR2
;循环读取数据寄存器
BANZINLOOP,*-,AR1
RET
程序说明:CFDATA为数据寄存器端口地址;CFCOM_STAT为状态/命令寄存器端口地址;CFERR_FEA为特征寄存器端口地址;CFSEC_COU为扇区数寄存器端口地址;CFSEC_NO为扇区号寄存器端口地址;CFCYL_LOW为柱面号寄存器(低字节)端口地址;CFCYL_HIG为柱面号寄存器(高字节)端口地址;AR1、AR3~AR6辅助寄存器为程序入口参数,其中AR1为RAM数据缓冲区的起始地址;AR3~AR6为CF卡各寄存器待赋的值;CF_IN和CF_OUT为变量。程序中没超时处理,在循环读取数据的过程中,最好禁用时间较长的中断。这是因为CF卡在15ms内没有接收到命令就会进入休眠(sleep),因此不论是读还是写扇区,在命令出后15ms内应将数据取出或填充上,否则会出错。
结语
采用TI公司的C24X、C28X系列DSP与CF卡搭建体电信号采集的硬件平台,仅使用很少的外部逻辑。整个系统可以采用低电压3.3V单一电压供电,供电电路非常简单。C24X、C28X系列DSP芯片对片内的各个模块独立供电,工作时可以屏蔽掉没有用到的模块,比如SCI、SPI、CAN总线接口等模块,减少系统的功耗。在系统软件实现上,可以采用交替式双缓存机制,将采集到的数据先存入数据缓冲区中(1扇区占512字节为易)。当数据缓冲区写满时发出溢出中断,对CF卡进行 《便携式、低功耗体电信号采集存储系统研究(第3页)》