MC9S12XS128模数转换模块及其应用实例.ppt
MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,MC9S12XS单片机原理及嵌入式系统开发,合肥工业大学张 阳,吴 晔,滕 勤 Email:,TEL:,,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,第8章 MC9S12XS128模数转换模块及其应用实例,ATD模块概述 ATD模块结构组成和特点 ATD模块寄存器及设置 ATD模块应用实例 智能车系统中ATD模块的应用,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.1 ATD模块概述,在计算机过程控制和数据采集等系统中,经常要对一些过程参数进行测量和控制,这些参数往往是连续变化的物理量,如温度、压力、流量和速度等。这里所指的连续变化即数值是随时间连续可变的,通常称这些物理量为模拟量,然而计算机本身所能识别和处理的都是数字量。这些模拟量在进入计算机之前必须转换成二进制数码表示的数字信号,能够把模拟量变成数字量的器件称为模数(A/D)转换器。MC9S12XS128内置的ATD(也记做A/D)模块是16通道、12位精度、多路输入复用、逐次逼近型的模数转换器。本章着重介绍ADC模块的特性、寄存器功能及设置,并通过一些应用实例和ATD模块在自主寻迹智能车上的应用,让读者掌握ATD模块的应用及编程方法。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.2 ATD模块结构组成和特点,MC9S12XS128内置的ATD模块如图8.1所示。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.2 ATD模块结构组成和特点,ATD模块具有以下基本特征:8位/10位/12位可选转换精度;停止模式下转换使用内部时钟;转换完成后为低功耗状态;自动和可编程数值比较,可设定大于或者小于等于设定值时中断申请;可编程采样时间;左对齐/右对齐转换数值;外部触发功能;转换完成中断申请;16路模拟输入通道多路开关;可实现VRH、VRL和(VRH+VRL)/2特殊转换;转换序列长度为116;连续转换模式;多通道扫描功能;外部触发功能可配置为AD通道或4个外部附加触发输入端,外部触发源可选择片外或片内信号。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,MC9S12XS128的ATD模块相关寄存器详见表8-1。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.1 ATD控制寄存器0(ATDCTL0),ATD控制寄存器0(ATD Control Register 0,ATDCTL0),如图8.2所示。该寄存器写操作将中止当前转换序列。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.1 ATD控制寄存器0(ATDCTL0),读:任何时刻;写:任何时刻,特殊模式下总是对保留位(Bit 7)写0操作。WRAP3WRAP0:返转通道选择位。当执行多通道转换时,这4位确定返转通道,多通道返转编码如表8-2所示。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.2 ATD控制寄存器1(ATDCTL1),ATD控制寄存器1(ATD Control Register 1,ATDCTL1),如图8.3所示。该寄存器写操作将中止当前转换序列。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.2 ATD控制寄存器1(ATDCTL1),读:任何时刻;写:任何时刻。ETRIGSEL:外部触发源选择位。该位选择外部触发源是AD通道,还是ETRIG30输入引脚。对于ERTIG30输入端的使用请参考MC9S12XS128数据手册。如果ETRIG30的某输入端不可用,置位ETRIGSEL操作无效,这意味着只能选择AD通道作为外部触发源。ETRIGCH3ETRIGCH0:外部触发通道选择位,这4位选择AD某通道或ERTIG30某输入端作为外部触发源。外部触发通道选择编码详见表8-3。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.2 ATD控制寄存器1(ATDCTL1),MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.2 ATD控制寄存器1(ATDCTL1),SRES1SRES0:A/D分辨率选择位。设置A/D转换结果分辨率,详见表8-4。,SMP_DIS:采样前放电位选择。0 表示采样前不放电;1 表示某通道采样前,内部采样电容会放电。这会增加2个ATD时钟周期的采样时间,有助于采样前进行开路检测。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.3 ATD控制寄存器2(ATDCTL2),ATD控制寄存器2(ATD Control Register 2,ATDCTL2),如图8.4所示。该寄存器写操作将中止当前转换序列。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.3 ATD控制寄存器2(ATDCTL2),读:任何时刻;写:任何时刻。AFFC:ATD模块标志快速清除位。0 表示ATD转换完成标志位由各自CCFn标志位写1操作清除;1 表示通过快速清除序列修改所有ATD转换完成标志位。当比较使能位CMPEn=0时,读取结果寄存器将自动清除相应CCF标志位;当比较使能位CMPEn=1时,结果寄存器写操作将自动清除相应CCF标志位。ICLKSTP:停止模式下内部时钟位。该位使能停止模式下的AD转换。当进入停止模式且ICLKSTP=1时,ATD转换时钟自动切换到内部时钟ICLK。当前转换序列将不受影响地继续转换,转换速率将从预分频总线频率变为ICLK频率。ICLK频率下,ATDCTL4寄存器中的PRS4PRS0预分频因子无效。停止模式下的AD转换,外部触发将不工作;自动比较中断或序列完成中断用于软件中断处理AD采样值。从运行模式转换到停止模式期间,或者从停止模式转换到运行模式期间,转换结果不会写入结果寄存器,不置位CCF标志位且不进行比较处理。停止模式下且ICLKSTP=1时,脱离停止模式需要有ATDCLK切换回总线时钟的ATD停止恢复时间tATDSTPRCV,此时间内,不能访问ATD寄存器。0表示进入停止模式时如果AD转换序列正在进行,则中止当前转换序列。退出停止模式时AD转换自动重启;1表示停止模式下AD转换使用内部时钟(ICLK)进行转换。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.3 ATD控制寄存器2(ATDCTL2),ETRIGLE:外部触发电平/边沿控制位。该位确定外部触发信号是边沿触发还是电平触发。该位和ETRIGP位配合使用,这2位外部触发设置详见表8-5。ETRIGP:外部触发极性控制位。该位确定外部触发信号的极性。该位和ETRIGLE位配合使用,这2位外部触发设置详见表8-5。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.3 ATD控制寄存器2(ATDCTL2),ETRIGE:外部触发模式使能位。该位允许表8-3中描述的AD通道或者ETRIG30输入端作为外部触发源。如果外部触发源是AD某通道,则使能该通道的数字输入缓冲功能。外部触发允许与外部事件实现同步转换。停止模式下的AD转换,外部触发不工作。0表示禁止外部触发;1表示允许外部触发。ASCIE:ATD转换序列完成中断使能位。该位使能,当SCF置位时,则ATD转换序列完成后将产生中断请求。0表示禁止ATD转换序列完成产生中断请求;1表示允许ATD转换序列完成产生中断请求。ACMPIE:ATD比较中断使能位。该位使能,当自动比较功能使能,即ATDCMPE寄存器中的比较使能位CMPEn=1时,则相应比较位可申请中断。如果CCFn标志置位,将触发比较中断。0表示禁止ATD比较中断请求;1表示允许ATD比较中断请求。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.4 ATD控制寄存器3(ATDCTL3),ATD控制寄存器3(ATD Control Register 3,ATDCTL3),如图8.5所示。该寄存器写操作将中止当前转换序列。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.4 ATD控制寄存器3(ATDCTL3),读:任何时刻;写:任何时刻。DJM:结果寄存器数据对齐方式选择位。该位确定结果寄存器中转换数据的对齐格式,转换结果数据总是无符号。0表示结果寄存器中的数据格式左对齐;1表示结果寄存器中的数据格式右对齐。表8-6中给出输入信号为05.12V情况下的ATD转换结果示例。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.4 ATD控制寄存器3(ATDCTL3),S8C、S4C、S2C、S1C:转换序列长度定义位。这4位控制每个序列转换的长度。A/D转换序列长度定义详见表8-7。复位后,S4C默认为1,所以默认的A/D转换序列的长度为4。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.4 ATD控制寄存器3(ATDCTL3),FIFO:结果寄存器先进先出(FIFO)模式选择位。如果该位为0(非FIFO模式),则AD转换结果基于转换序列映射到结果寄存器,第1个转换结果放入第1个结果寄存器ATDDR0,第2个转换结果放入第2个结果寄存器ATDDR1,以此类推。如果该位为1(FIFO模式),则AD转换开始和结束时,转换计数器不复位,转换结果被依次存放在结果寄存器。连续转换序列模式(SCAN=1),到达最后结果寄存器时,结果寄存器计数器将返转。转换计数器值(ATDSTAT0寄存器中的CC3CC0)确定当前转换结果存放的相应结果寄存器,结果寄存器保存的有效数据可查询转换完成标志位获悉。FIFO模式下,中止当前转换或开始新转换将清除转换计数器。ATDCTL5寄存器写操作,新转换序列的第1个转换结果,总是放入第1个结果寄存器ATDDR0。如果FIFO位为1,禁用结果寄存器自动比较功能,ATD模块工作方式如同ACMPIE=0,CMPEn=0一样。0表示转换结果根据选择的转换序列长度放入相应结果寄存器;1表示转换结果依次放入结果寄存器(到达最后结果寄存器时再返转)。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.4 ATD控制寄存器3(ATDCTL3),FRZ1、FRZ0:冻结模式下背景调试使能控制位。当背景调试程序时,如果遇到断点,有时希望此时ATD模块停止工作。这2位共同确定冻结模式下遇到断点时ATD模块的工作状态,如表8-8所示。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.5 ATD控制寄存器4(ATDCTL4),ATD控制寄存器4(ATD Control Register 4,ATDCTL4),如图8.6所示,该寄存器写操作将中止当前转换序列。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.5 ATD控制寄存器4(ATDCTL4),SMP2SMP0:采样时间选择位。这3位确定以ATD转换时钟周期为单位的采样时间长度,注意ATD转换时钟周期和ATD时钟预分频因子相关。表8-9列出了采样时间长度的选择。,PRS4PRS0:ATD时钟预分频因子选择位。这5位确定ATD时钟预分频因子的二进制PRS值,ATD转换时钟频率计算公式为 f ATDCLK=fBUS/(2(PRS+1)式中,fATDCLK允许的频率范围请参考MC9S12XS128数据手册。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.6 ATD控制寄存器5(ATDCTL5),ATD控制寄存器5(ATD Control Register 5,ATDCTL5),如图8.7所示,该寄存器写操作将中止当前转换序列,启动新的转换序列。若外部触发模式使能位ETRIGE=1,则初始化ATDCTL5寄存器,将启动新的转换序列,每次触发事件都会发生新的转换。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.6 ATD控制寄存器5(ATDCTL5),读:任何时刻;写:任何时刻。SC:特殊通道转换位。如果该位置位,可使用本寄存器中的CD、CC、CB和CA选择特殊通道转换,详见表8-10。1表示禁止特殊通道转换;0表示允许特殊通道转换。SCAN:连续转换序列模式选择位。该位确定AD转换序列执行是连续转换还是只转换一次。如果外部触发模式使能位ETRIGE=1,则设置该位无效,这说明外部触发事件总是启动单次转换序列。0表示单次转换序列模式;1表示连续转换序列模式(称为扫描模式)。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.6 ATD控制寄存器5(ATDCTL5),MULT:多通道采样模式选择位。当MULT位为0时,ATD 序列控制器只从指定的模拟输入通道采样完成转换序列。模拟输入通道选择编码由本寄存器中的CD、CC、CB和CA位共同确定。当MULT位为1时,ATD序列控制器从多个输入通道采样数据,输入通道数目由转换序列长度值(ATDCTL3 寄存器中的S8C、S4C、S2C和S1C位)确定,其中采样的第一个输入通道由通道选择编码(ATDCTL5寄存器中的CD、CC、CB和CA位)确定,之后转换序列中的输入通道由递增的通道选择编码确定或者返转回到AN0(输入通道0)。0表示单通道采样;1表示多通道采样。CD、CC、CB、CA:模拟量输入通道选择编码位。这4位用于选择相应的模拟输入通道,表8-10列出了模拟输入通道选择编码。单通道转换(MULT=0)时,通道选择编码确定了采样和转换的模拟输入通道。多通道转换(MULT=1)时,通道选择编码确定了转换序列中第一个输入通道。之后转换序列中的采样通道由递增的通道选择编码确定或者返转回到AN0(返转通道由ATDCTL0寄存器中的返转通道选择位WRAP3WRAP0确定)。当起始转换通道号超过WRAP3WRAP0定义的编码时,将从AN15返转到AN0。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.6 ATD控制寄存器5(ATDCTL5),MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.7 ATD状态寄存器0(ATDSTAT0),ATD状态寄存器0(ATD Status Register 0,ATDSTAT0),如图8.8所示。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.7 ATD状态寄存器0(ATDSTAT0),读:任何时刻;写:任何时刻(CC3、CC2、CC1和CC0位写操作无效)。ATDSTAT0寄存器中有转换序列完成标志位SCF、外部触发复写标志位ETORF、结果寄存器复写标志位FIFOR和A/D转换计数器CC3CC0。SCF:转换序列完成标志位。当一次转换序列完成后,该标志位置位;如果为连续转换序列模式(SCAN=1),每次转换完成后都会置位该标志位。当发生以下情况时,该标志位被清零。SCF位写1操作。ATDCTL5寄存器写操作(启动新的转换序列)。当AFFC=1时,读取结果寄存器。0表示转换序列未完成;1表示转换序列已完成。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.7 ATD状态寄存器0(ATDSTAT0),ETORF:外部触发复写标志位。当处于边沿触发模式(ETRIGLE=0)时,如果转换序列正在进行,同时又检测到一个有效边沿触发信号时,该标志位置位。当发生以下情况时,该标志位被清零。ETORF位写1操作。TDCTL0、ATDCTL1、ATDCTL2、ATDCTL3、ATDCTL4、ATDCMPE或ATDCMPHT任意寄存器写操作(中止当前转换序列)。TDCTL5寄存器写操作(启动新的转换序列)。0表示未发生外部触发复写错误;1表示已发生外部触发复写错误。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.7 ATD状态寄存器0(ATDSTAT0),FIFOR:结果寄存器复写标志位。该标志位表示在AD转换完成标志位CCF没有清零时,结果寄存器又被写入数据。FIFO模式下,该标志位表示结果寄存器中的数据和输入通道是否处于同步状态;非FIFO模式下,该标志位表示结果寄存器中的数据在读出之前已经被新数据覆盖(也就是说原来转换数据丢失了)。当发生以下情况时,该标志位被清零。IFOR位写1操作;ATDCTL0、ATDCTL1、ATDCTL2、ATDCTL3、ATDCTL4、ATDCMPE或ATDCMPHT任意寄存器写操作(中止当前转换序列)。ATDCTL5寄存器 写操作(启动新的转换序列)。0表示未发生结果寄存器复写;1表示已发生结果寄存器复写。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.7 ATD状态寄存器0(ATDSTAT0),CC3、CC2、CC1、CC0:AD转换计数器。这4位只读位是转换计数器的二进制数值。转换计数器指向将要接收当前转换数据的结果寄存器。举例来说,CC3=0,CC2=1,CC1=1,CC0=0表示当前转换结果将被存放到ATD结果寄存器6(ATDDR6)。非FIFO模式(FIFO=0)下,转换计数器在转换序列的开始和结束时被初始化为0;FIFO模式(FIFO=1)下,转换计数器不被初始化。当达到最大值时,转换计数器返转。只要中止当前转换序列或启动新的转换序列,转换计数器都被清零。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.8 ATD比较使能寄存器(ATDCMPE),ATD比较使能寄存器(ATD Compare Enable Register,ATDCMPE)有16个转换序列比较使能位CMPE15CMPE0,如图8.9所示。该寄存器写操作将中止当前转换序列。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.8 ATD比较使能寄存器(ATDCMPE),读:任何时刻;写:任何时刻。CMPE15CMPE0:转换序列n(n=15,14,13,3,2,1,0)比较使能位。这16位每位可单独使能转换序列中转换结果自动比较功能,比较方式由ATDCMPHT寄存器中的CMPHTn位决定。对于CMPEn=1的转换序列自动比较功能,依次操作如下:结果寄存器ATDDRn中写入比较数值;ATDCPMHT寄存器中的CMPHTn位写入比较操作符。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.9 ATD状态寄存器2(ATDSTAT2),ATD状态寄存器2(ATD Status Register 2,ATDSTAT2)是只读寄存器,有16个转换序列完成标志位CCF15CCF0,如图8.10所示。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.9 ATD状态寄存器2(ATDSTAT2),读:任何时刻;写:无效。CCFn:转换完成标志位n(n=15,14,13,3,2,1,0)。每个转换序列转换结束时,相应的转换完成标志会被置位。这16个标志位与转换序列中的转换数n及结果寄存器n都相关。非FIFO模式下,当转换序列中的第9个转换结果完成,则置位CCF8,且结果寄存器ATDDR8中的转换结果有效;当转换序列中的第10个转换结果完成,则置位CCF9,且结果寄存器ATDDR9中的转换结果有效,以此类推。如果转换结果自动比较使能(ATDCMPE寄存器中的CMPEn=1),则转换完成标志位CCFn需要转换结果与ATDDRn值比较为真时才置位,当ACMPIE=1时,将会产生比较中断请求。这种情况(自动比较功能)下,ATDDRn结果寄存器用于设置比较值,不存储转换结果,转换完成后转换结果被丢弃。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.9 ATD状态寄存器2(ATDSTAT2),当发生以下情况时,标志位CCFn被清零:ATDCTL5寄存器写操作(启动新的转换序列);AFFC=0时,CCFn位写1操作;AFFC=1且CMPEn=0时,读取结果寄存器ATDDRn;AFFC=1且CMPEn=1时,写入结果寄存器ATDDRn。假设CCFn位出现同时置位和清零情况:上述方法的清零操作无效,将置位CCFn。上述、方法的清零操作无效,将置位CCFn。0 表示转换数n未完成转换或者自动比较结果为假(比较失败);1 表示CMPEn=0时,转换数n已完成转换,转换结果存储在ATDDRn。CMPEn=1时,转换数n的转换结果与ATDDRn中的数值自动比较,比较结果的比较运算符CMPGTn为真。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.10 ATD输入使能寄存器(ATDDIEN),ATD输入使能寄存器(ATD Input Enable Register,ATDDIEN),如图8.11所示。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.10 ATD输入使能寄存器(ATDDIEN),读:任何时刻;写:任何时刻。IENx:ATD通道x的数字输入使能位(x=15,14,13,3,2,1,0)。该寄存器确定ANx引脚为模拟输入通道功能还是通用数字输入口功能。0表示禁止数字输入缓冲到ANx引脚,这时该引脚作为模拟量输入通道使用;1表示允许数字输入缓冲到ANx引脚,这时该引脚作为通用数字输入口使用。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.11 ATD比较大于寄存器(ATDCMPHT),ATD比较大于寄存器(ATD Compare Higher Than Register,ATDCMPHT),如图8.12所示,该寄存器写操作将中止当前转换序列。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.11 ATD比较大于寄存器(ATDCMPHT),读:任何时刻;写:任何时刻。CMPHTn:转换序列的转换数n的比较运算大于使能位(n=15,14,13,3,2,1,0)。该寄存器确定比较结果的比较运算符。0表示如果转换结果小于等于ATDDRn寄存器中的比较值,则ATDSTAT2寄存器中对应标志位置位;1表示如果转换结果大于ATDDRn寄存器中的比较值,则ATDSTAT2寄存器中对应标志位置位。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.12 ATD转换结果寄存器(ATDDRn),A/D转换结果存储在16个结果寄存器(ATD Conversion Result Registers,ATDDRn),转换结果总是无符号数据,ATDCTL3寄存器中的DJM位确定结果寄存器中的转换结果存储格式是左对齐还是右对齐。如果ATDCMPE 寄存器中的CMPEn=1,即使能转换结果自动比较功能时,则ATDDRn寄存器中的比较数值必须按照DJM位规定的左对齐或右对齐格式写入。这种情况下,ATDDRn寄存器用于设置比较值,不存储转换结果,转换完成后转换结果被丢弃。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.12 ATD转换结果寄存器(ATDDRn),1)左对齐转换结果数据格式(DJM=0,12位ATD,见图8.13),2)右对齐转换结果数据格式(DJM=1,12位ATD,见图8.14),MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.3 ATD模块寄存器及设置,8.3.12 ATD转换结果寄存器(ATDDRn),表8-11列出了A/D不同分辨率情况下,ATD结果寄存器中存储的数据格式。比较运算总是使用12位的转换结果和ATDDRn中比较值进行比较。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.4 ATD模块应用实例,本实例硬件连接如图8.15所示,ATD0模块的通道0连接一个可调电阻,提供可调的模拟输入电压值,PORTB端口连接8只LED。编程实现ATD0模块的连续采样,采用8位采样精度,转换结果右对齐格式,将A/D转换完成的转换结果送到PORTB口,通过点亮LED灯的明暗情况,了解观察A/D转换结果的变化。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.4 ATD模块应用实例,程序清单如下所示。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.4 ATD模块应用实例,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.5 智能车系统中ATD模块的应用,8.5.1 ATD模块在基于光电管路径识别方案中的应用,智能车系统设计中,竞赛规则中规定所使用的传感器数量不能超过16个,除去用于速度闭环控制用的测速传感器,对于光电管设计方案,最多还可以运用15对光电管传感器检测路径。为了叙述方便,在此以8对光电管为例,读者可以参考本节叙述自行增加光电管传感器个数并作软件修改,简单的光电管路径检测原理如图8.16所示。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.5 智能车系统中ATD模块的应用,8.5.1 ATD模块在基于光电管路径识别方案中的应用,为了叙述方便,下文中将把图8.16所示的原理看做一个传感器模块。智能车系统中,8组光电传感器模块与MC9S12XS128的连接如图8.17所示。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.5 智能车系统中ATD模块的应用,8.5.1 ATD模块在基于光电管路径识别方案中的应用,程序清单如下所示。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.5 智能车系统中ATD模块的应用,8.5.1 ATD模块在基于光电管路径识别方案中的应用,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.5 智能车系统中ATD模块的应用,8.5.2 ATD模块在基于摄像头路径识别方案中的应用,光电管方案虽然简单易行,但是相比摄像头方案来说,其所探测的距离近、信息量有限,耗电量大,占用MCU端口资源多,而且易受外界光线环境影响,而摄像头则能比较好地解决这些问题。摄像头传感器可分为CCD型和CMOS型,其中CMOS型摄像头工艺简单,价格便宜,对于识别智能车赛道这样的黑白二值图像能够满足要求。因此,本节将以CMOS型摄像头为例,介绍ATD模块在摄像头路径识别方案中的应用。要能有效地采集摄像头视频信号,首先要处理好的技术问题就是能提取出摄像头信号中的行同步脉冲、消隐脉冲和场同步脉冲。否则,MCU将无法识别所接收到的视频信号处在哪一场,也无法识别是在该场中的场消隐区还是视频信号区,更无法识别是在视频信号区的第几行。通常为了解决以上问题,需要外接一个视频分离芯片,如LM1881视频同步信号分离芯片,它可以提取摄像头信号的行同步脉冲信号、消隐脉冲信号和场同步脉冲信号,并将它们转换成数字信号直接提供给MCU的I/O口作为控制信号。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.5 智能车系统中ATD模块的应用,8.5.2 ATD模块在基于摄像头路径识别方案中的应用,基于摄像头路径识别的硬件原理如图8.18所示。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.5 智能车系统中ATD模块的应用,8.5.2 ATD模块在基于摄像头路径识别方案中的应用,摄像头视频信号端接LM1881的视频信号输入端,同时也接入了MC9S12XS128的一个ATD端口AN0。LM1881的行同步信号CSO接到MC9S12XS128的IRQ端口,采用外部中断的方式检测视频的行信号,并将LM1881的场同步信号VS和奇-偶场同步信号O/E分别接入MC9S12XS128的通用I/O口,读者可以自行选择使用何种同步信号来检测换场信息,也可以配合使用。以下以场同步信号VS为例,给出采样程序示例函数。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.5 智能车系统中ATD模块的应用,8.5.2 ATD模块在基于摄像头路径识别方案中的应用,程序清单如下所示。,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,8.5 智能车系统中ATD模块的应用,8.5.2 ATD模块在基于摄像头路径识别方案中的应用,MC9S12XS单片机原理及嵌入式系统开发单片机原理及嵌入式系统开发,The End,