AMCC的原理与应用.pptx
目录一、硬件结构二、数据与指令三、开发与调试工具四、调试实例第1页/共77页一、硬件结构1.1 概述1.2 结构1.3 内核1.4 外围设备接口1.5 时钟与供电1.6 读写时序1.7 复位过程第2页/共77页1.1 概述AM186CC是AMD公司设计的一款x86架构的嵌入式CPU,特点是简单易用,有着很好的软件移植性。我司使用的186主频25MHz,3.3V单电压供电,I/O可承受5V电压;PQFP160封装 返回第3页/共77页1.2 结构基本组成结构是:CPU内核+外围设备接口。外围设备接口包括以下三类:1.存储器外设接口2.系统外设接口3.串行通讯外设接口第4页/共77页存储器外设接口包括了以下部分:集成DRAM控制器;RAM/ROM/Flash存储器的无缝接口(工作在50MHz时55ns Flash需要零等待操作存储器);14个片选信号(8个外围设被片选,6个存储器片选);外部总线主用支持;复用和非复用的地址/数据总线;可编程的总线宽度;8位/16位BOOT选项 等等第5页/共77页系统外设接口包括以下部分:3个可编程16位定时计数器;硬件开门狗定时器;4个通用DMA;48个可编程I/O;36个可屏蔽中断控制器;第6页/共77页串行通讯外设接口由以下部分组成:4个HDLC通道,HDLC的物理接口可以是raw DCE,PCM Highway,或者GCI(IOM-2);4个独立时隙分配器(TSAs);USB控制器;自动波特率发生器的高速UART;UART;同步串行接口(SSI);支持USB/HDLC的8个SmartDMA通道 第7页/共77页结构框图返回返回第8页/共77页1.3 内核Am186系列的所有成员(包括Am186CC控制器)都兼容186的初始工业标准,都建立在相同的186寄存器内核标准上,地址的产生,I/O空间以及指令集,段和数据的类型以及地址类型全部相同。和我们微机原理课上讲的非常类似,易于理解。第9页/共77页存储器空间寻址方式内存使用段(segment)的方式进行管理。每个段是一个连续的64k 8比特字节组成的线性序列。16比特段地址的值包括在下列4个内部段寄存器(CS,DS,SS,ES)之一。内存地址16比特的段地址16比特的偏移地址具体计算方法:物理地址段地址值左移4位+16比特的偏移地址,物理地址长度为20比特。186的寻址空间为1M字节。第10页/共77页物理地址生成示意图第11页/共77页I/O空间寻址方式I/O空间包括了64k的8比特或32k的16比特端口。有独立的指令(IN,INS和OUT,OUTS)来为I/O空间定位,如果是8比特端口则利用上述指令确定,如果是16比特端口则要用到DX寄存器。8比特端口地址中A15-A8是低位地址。注意:CPU在I/O空间保留了00F800FF第12页/共77页示意图注意:00000h003FFh保留,作为中断向量表;00F8h00FFh也被保留返回返回第13页/共77页1.4 外围设备接口1.4.1 串行通讯口外围设备:Am186CC共支持8个串行接口。包括4个HDLC通道;一个USB控制器;2个UART;一个同步串行接口(SSI)USB接口我们并未用到,这里不作细述。4个HDLC通道和4个TSA:4个HDLC通道,它支持了HDLC,SDLC,LAPB,LAPD和PPP协议。每个通道可以和一个外部串行接口直接相连(非复用模式),或者能接入一个TSA(复用模式)内。第14页/共77页HDLC应用灵活的接口复用安排允许每个通道有它自己的外部raw DEC或者PCM highway接口,能够和2个其他通道共享GCI接口;可以和3个或更多的通道共享一个普通PCM highway接口或其他的时域TDM总线;或者其他一些联合模式。说明:我们现在的应用方式是外部raw DEC接口,没有试过TSA等方式。注意TSA方式可保证每个TDM总线支持到最多512个8比特时隙。这一特性可用于PCM highway,E1,IOM-2,T1以及其他一些TDM总线。第15页/共77页HDLCHDLC通道提供了十分全面的应用方式:CTS/RTR硬件握手信号和自动使能操作,多点方式的冲突检测机制,透明模式,接收端的地址比较,标志位或标志空操作,每个HDLC的SmartDMA通道有两个BD环,发送接收FIFO,全双工数据传送。对于我们常用的raw DCE方式来讲,传送速率可达10Mbit/s。第16页/共77页异步串口这两个串口都支持全双工双向数据传送。一个是高速UART口,带有发送接收FIFO,特殊字符匹配,自动波特率侦测,可用来实现PC机的modem接口。另外还有一个低速UART,用于调试口或实现低速波特率系统配置端口。它们都可通过CPU始终或独立的波特率产生时钟输入获得波特率。支持7,8,9比特数据传送;可在7或8比特的帧里获得地址比特的产生和检测;1或2个停止比特位;奇偶校验;中断产生和检测;硬件流程控制;使用通用DMA通道在串口上应用DMA方式。第17页/共77页同步串口一个SSI:它是一个半双工,双向的通讯接口,实现AM186CC控制器和其他系统之间的通讯。主要用于186监测另外一个系统设备的工作状态以及通过软件实现对该设备的配置。通常这些设备包括音频编解码器、线路接口单元以及发送接收器。在50MHz的CPU时钟下SSI支持高达25Mbit/s的数据传输速率。186 SSI口作为主设备,而和它相连的设备作为从设备。使用这种协议,186送出一个命令字节到从设备上,接下来可进行读写操作。SSI接口包括了3个I/O脚:使能脚SDEN,时钟脚SCLK,双向数据脚SDATA。第18页/共77页GCI接口:是Alcatel,Italtel,GPT,Siemens联合开发的一种接口。目前无此应用,此处不作详述 Smart DMA通道:186一共提供了12个DMA通道,其中8个是SmartDMA。它总是成对应用,一发送器一接收器;实现了利用存储器buffer和复杂的buffer链机制传送数据的功能。其中4个(2组)通道被分配来用作2个板内HDLC通道。其他4个能够支持3、4HDLC通道或者USB通道。另外186还提供了4个通用功能的DMA通道 第19页/共77页1.4.2 系统外设接口系统外设接口包括以下部分:3个可编程16位定时计数器;硬件开门狗定时器;4个通用DMA;48个可编程I/O;36个可屏蔽中断控制器;第20页/共77页中断控制器中断控制器的特点:有优先级要求的可屏蔽中断一共36个,发生此类中断时需送入CPU进行处理。此外,186还可支持8个不可屏蔽中断:一个外部内部不可屏蔽中断(NMI),一个跟踪中断,以及其他的软中断和异常。这36个可屏蔽中断源是通过15个通道来实现的。所以,大多数通道可支持多个中断源。36个可屏蔽中断源包括了19个内部源和17个外部源。第21页/共77页通用DMA通道 一共4个DMA通道:用来实现存储器空间和I/O空间之间的数据传送,表现为4种方式:存储器到存储器,I/O到I/O,存储器到I/O,I/O到存储器。另外,186还支持外围设备到存储器或I/O之间的数据传送。186片内有以下设备支持通用DMA:定时器2,两个UART口,USB控制器。而支持DMA方式的外部的设备则是通过外部DMA请求信号脚实现的。而每个通用通道从下面4种源之一接收DMA请求:DMA请求脚(DRQ1DRQ0),定时器2,UART,或者USB控制器。第22页/共77页可编程I/O脚 特点:数量:48个:功能:每个脚都可以提供一个以上的功能,所以当不需要复用的功能时,可通过对PIO寄存器编程配置为只用作PIO用途。此时,复用功能无效。特别注意:PIO口可以配置为输入或输出脚;内部上下拉或没有上下拉是由管脚本身的配置决定,用户不可配置;或者作为漏极开路输出。此外,其中8个PIO口可配置为2外部中断源。第23页/共77页可编程定时器特点:数量3个定时器0,1是高度通用的定时器,都分别连接在2个外部管脚上(一个输入一个输出)。它们能对驱动定时器输入脚的外部事件进行计数或定时。它们也能产生非重复性的以及非固定占空比的波形并在定时器输出脚输出。定时器2没有连接到任何外部管脚,它的作用是为软件产生中断,以及轮询计数和延时应用。还可以为定时器0和1做预分频,以及作为DMA请求源使用。定时器2所用时钟频率为CPU时钟频率的1/4。定时器0和1所用时钟频率可以是CPU时钟的1/4,或者由它们对应的定时器输入脚驱动,此时,定时器对外部输入时钟计数。186还提供了一个脉宽解调选项,这样,当输入信号反转到低电平和高电平时都可以测量到 第24页/共77页硬件看门狗定时器186提供了一个专职的看门狗定时器,它能够产生非屏蔽中断,微控制器复位,达到预设值时后系统复位。预设值用户可编程,范围从210 226个处理器周期。当软件错误或者外部设备不响应或响应错误时,看门狗定时器取得控制权。有时,看门狗定时器产生NMI后软件错误会得到纠正。当外部器件不响应或响应错误时,必须对控制器或整个系统复位解决问题。看门狗定时器提供了产生NMI和复位操作的灵活机制。第25页/共77页1.4.3 存储器外设接口1 系统总线接口总线接口控制了对外设控制块(PCB)、存储器映射和I/O映射外设以及存储器设备的所有访问。总线接口通过PCB对片内的外设接口进行访问。186的总线特性包括:总线宽度可编程;独立的片选(UCS,LCS,所有非UCS非LCS和I/O空间);独立的字节写使能;从8位或16位设备的引导可选。集成在片内的外设接口由宽16位的读/写寄存器控制。这些寄存器位于大小1K字节的内部控制块(PCB)里面。复位过程中,PCB的基地址跳到I/O空间的FC00h。这些寄存器实际位于它们控制的外围设备里,但是它们的地址组成这个1K字节的块 第26页/共77页复用的地址和数据总线AD总线上仅在t1时钟相位阶段出现地址。186连续提供复用的AD总线以及非复用的地址总线(A总线)。A总线在完整的时钟周期内(t1t4)为系统提供了地址。在刷新周期里,AD总线仅在t1阶段驱动,而在其他3个阶段线上的值都是无效的。而在刷新周期里,A总线上驱动的值是未定义的。非复用的A总线(A19-A0)的值总是在AD总线1/2个CLKOUT时钟周期之前生效。当和UCS,LCS变址输出以及写使能信号配合使用时,A19-A0总线可以对SRAM,DRA,和FLASH/EPROM存储器系统提供无缝的接口,也就是说,这些设备可挂在CPU上直接使用。第27页/共77页地址禁止模式 对于一个关注功耗的系统来说,可以令访问UCS或LCS地址空间时,AD总线上正常情况下应出现地址值时不出现地址。这段时间内AD线呈高阻态。这种模式通过设置UMCS和LMCS寄存器的DA位而激活。地址禁止模式下,相应地址空间里所有正常总线周期内出现的信号数量减少了,这样功耗也将下降,处理器交换噪声减小,工作在高速时钟频率下时存储器设备和外设间的总线冲突也将消除。如果ADEN脚在处理器复位时生效,那么DA位将不会发生作用,AD总线上的地址也不会禁止掉。它保留了工业级80C186和80C188微处理器的复用地址总线并提供了对已有仿真工具的支持。第28页/共77页正常的总线状态 图1 正常工作模式下的总线状态 第29页/共77页地址禁止模式下的总线状态图2 地址禁止模式下的总线状态注意:AD总线工作在非复用状态,线上只有数据信号。仅A总线在读写操作时提供地址。第30页/共77页总线接口单元总线接口单元控制对外设和存储器的所有访问。外部访问包括对存储器的操作,和对存储器和I/O地址映射的外设以及PCB的访问。186提供的增强型总线接口单元有以下特点:非复用地址总线;对高位和低位字节的独立的自己写使能;输出使能标准的80C186/80C188复用地址和数据总线需要系统接口逻辑和外部地址锁存。对于186,字节写使能和非复用的地址总线能够简化外部逻辑,从而降低了设计难度。第31页/共77页非复用地址总线(A19-A0)上的值出现比AD总线要提前1/2时钟周期。当与变址UCS,LCS输出信号以及写使能信号共同使用时,A19-A0对外部SRAM,FLASH/EPROM系统提供了无缝的接口。字节写使能:186提供了WHB(写高位字节),WLB(写低位字节)作为字节写使能信号。WHB是BHE和WR信号或操作得到,当二者都是低电平时,WHB也变低;WLB是由A0和WR信号或操作得到。当需要对普通SRAM进行写操作时,字节写使能信号就通过非复用的地址总线驱动得到。输出使能:186提供了RD信号,以此作为存储器或外设的输出使能。186读取一个字节或字的时候,RD信号为低电平。第32页/共77页2 对DRAM的支持186有一个完全集成的DRAM控制器,对 2570ns EDO DRAM提供了无缝的接口。可以访问4Mbit(256k bit 16bit)的2个bank。不支持页模式的DRAM,快速页模式的DRAM,非对成的DRAM以及8位宽的DRAM。对于40ns DRAM,提供零等待状态的186在50MHz下可以很好的支持。如果设计者需要更大的存储器来节约系统功耗,就可以充分利用DRAM的这个优点来取代SRAM。DRAM接口使用了不同的片选脚实现DRAM的RAS/CAS接口。186的DRAM控制器在正常存储器访问和刷新过程中都驱动RAS/CAS接口。所有必需的信号都由186产生,无需外部逻辑。第33页/共77页DRAM复用地址脚连接186的奇数地址脚,186的A1(起始位)接DRAM的MA0。访问过程中即可产生正确的行与列的地址。RAS脚 还 复 用 为 LCS和 MCS3,这 样 就 允 许DRAM的bank在高或低的存储器空间都可使用。而CAS脚作为高或低段地址时用作MCS2和MCS1,它决定了访问16比特的DRAM哪一个字节的数据。186支持常用的DRAM刷新功能,CAS-before-RAS。所有的刷新周期包括3个等待状态,这样可支持各种不同频率的DRAM。但不支持burst操作。访问都是以一次为单位的。如果DRAM地址范围内和某PCS片选重合,则PCS访问比DRAM优先。第34页/共77页图3 无等待状态的DRAM读周期 第35页/共77页图4 有等待状态的DRAM读周期 第36页/共77页图5 无等待状态的DRAM写周期 第37页/共77页图6 有等待状态的DRAM写周期 第38页/共77页图7 DRAM刷新周期 第39页/共77页3 片选信号186提供了6个片选输出连接存储器设备;8个片选可连接外设,并能支持存储器空间和I/O地址空间。这6个片选可分成3个地址段,而8个外设片选地址则从基地址起有256字节的块偏移。186的片选可控制插入到总线周期中的等待状态数目。虽然大多数存储器和外设可支持3个以下等待状态的访问,部分低速器件却不能。所以这个特性就允许设备使用等待状态来降低总线速度。CPU和集成DMA单元产生的片选信号线,在所有存储器和I/O周期的可编程区域有效。目前的186CC比起早期80C186胜出的特性还有:对所有片选控制下的总线增加三态状态,当与之相关的寄存器被写入而非读入时此功能激活。第40页/共77页4 时钟控制:186可支持25M50M的时钟。USB口和CPU使用相互独立的晶体输入。USB口可以支持12或24M的晶体;CPU则可以工作在1X,2X,4X模式下;USB只能工作在2X,4X下 5 片内仿真支持:186的许多脚功能是复用的。当某个脚配置为PIO时也可能用作仿真用途。所以,在设计完成之前,使用者要联系可能的仿真器供应商获得所需管脚的列表。说明:186使用中,在多数情况下管脚冲突可以得到避免。例如,ALE信号在复用总线应用中是必需的,此时就不应用作PIO33。如果用不到复用AD总线,那么这个脚就可以配置为PIO33使用。因为此时,ALE信号不需要。返回返回第41页/共77页1.5 时钟与供电时钟电路包括了系统时钟(CLKOUT),USB时钟,各HDLC通道的收发时钟,UART的波特率生成时钟。SSI和定时器(定时器0,1,2)从系统时钟生产各自所需的时钟。特点:2个独立的晶体振荡器或谐振器分别产生系统输入时钟以及USB输入时钟。两 个 独 立 的 内 部 PLL,一 个 生 成 系 统 钟(CLKOUT),可以是1X,2X,4X;另一个生成48M的时钟,提供给USB使用,输入可以是12M,24M,48M时钟。单个的时钟源可以从系统钟或USB时钟里面获取(不作具体介绍)。第42页/共77页在各种模式下每个HDLC直接从外部通讯时钟脚接收时钟输入(TCLK_X,RCLK_X),GCI模式出外。GCI模式下外部GCI通讯时钟(TCLK_A,RCLK_A)首先转换为一个内部时钟格式(类似PCM Highway格式),然后再提供给HDLC。系统钟频率必须高于任何HDLC时钟。HDLC DCE模 式 支 持 时 钟 频 率 最 高 达 到10MHzHDLC PCM模式支持时钟频率最高达到10MHzHDLC GCI模式支持1.536MHz的时钟输入(系统必须高于它的2倍以上)SSI时钟(SCLK)从CPU时钟获取,分频倍数可以是2,4,8,16,32,64,128或256第43页/共77页定时器0,1可以配置成通过定时器输入脚(TMRIN1,TMRIN0)驱动,或者配置为1/4 CPU时钟。定时器2是由1/4 CPU时钟驱动。UART时钟可由内部CPU时钟分频得到或者从UART时钟输入脚获得(UCLK)第44页/共77页图8 基本时钟产生的原理 第45页/共77页1 系统时钟系统系统PLL可生成1650MHz的时钟。系统PLL的参考时钟可以从840MHz,而这完全取决于选择的PLL模式以及想要的系统频率。CPU PLL模式通过复位时CLKSEL1,CLKSEL2两个脚的状态来选择。定义如下:CLKSEL1CLKSEL2CPU PLL Mode112X,CPU PLL enabled(default)104X,CPU PLL enabled011X,CPU PLL enabled00PLL Bypass第46页/共77页系统时钟可由以下2种方式生成:一是使用内部PLL对参考钟1X,2X,4X得到。其中的参考时钟则从外部晶体振荡器或谐振器得到。我们常用的参考钟频率是11.0592MHz。二是旁路内部PLL得到。外部参考时钟输入直接用作系统时钟。2 USB时钟:在传输产品中还没有用到过。USB PLL提供了48M时钟。可以分频至12MHz,从而支持全速率的USB(12Mbit/s)。不支持低速率1.5Mbit/s。USB PLL模式通过USBSEL1,USBSEL2脚在复位时的状态来选择。具体方式不作介绍。第47页/共77页3 注意事项:当使用CPU时钟作为USB时钟用时,必须在USBX1输入脚接外部下拉。系统使用CPU时钟作为USB时钟用时,系统可工作在48MHz系统可以和USB(USBX1)共享外部时钟参考输入(X1),此时系统工作在24MHz下。12MHz参考源,CPU PLL设为2X,USB PLL设为4X;或者24MHz参考源,CPU PLL设为1X,USB PLL设为4X模式。第48页/共77页4 静态工作186停止输入时钟时可以处于静态模式。此时PLL进入旁路模式,必须用到外部时钟源。5 UART波特时钟UART有两个可能的时钟源:系统时钟或UCLK输入时钟。如果用到了UCLK,系统时钟必须速率高于UCLK。时钟配置可参见图4。波特时钟通过对时钟源分频得到,分频比由波特分频寄存器设置。串口逻辑可在外部输入(UCLK)或CPU时钟直接选择波特速率时钟。它们两个时钟的选择和其他设置相比完全独立第49页/共77页波特分频寄存器值的计算由下式决定:BAUDDIV=(clock frequency/(16 baud rate)注意:UCLK也不能高于系统时钟频率图9 UART时钟第50页/共77页6 供电系统:186采用3.3V电源供电。设计5V/3.3V混合的系统时,186的I/O脚的驱动范围足以支持普通TTL电平(2.4V以上认为是高电平),更可接收TTL和CMOS电平(最高可达VCC+2.6V),即5V信号没有问题。需要特别注意的是:1)上电时,如果3.3V电源稳定工作要明显迟于5V电源,那么5V就有可能超出VCC+2.6V的电压。所以要注意控制,保证两种电源的差别不超过2.6V。2)最好的办法是,保证所有的输入信号在系统复位过程中处于三态,直到出现稳定的VCC系统复位状态才解除。这样可以保证第1条满足3)所有的上拉电阻请接到3.3V电源上。这样需要上拉的管脚在上电时不会超过范围。设计时注意把所有VCC接到一个3.3V电源上,所有的接地脚接在一个地平面上。返回返回第51页/共77页1.6 读写时序第52页/共77页1.7 复位过程复位包括3种情况:外部复位或上电复位:由RES管脚引起的复位内部复位:看门狗定时器引起的复位系统复位:同时复位了微处理器(包括CPU以及内部的外设接口)和连接到RESOUT的外部设备外部复位一定会引起系统复位,而内部复位是否引发系统复位则可以选择。当外部复位结束后,186将从物理地址FFF0开始执行指令,同时看门狗定时器开始重新计数。在上电过程中,RES信号必须持续1ms以上,以便保证内部电路稳定。如果RES开始发生时同时遇到看门狗定时器执行复位,则外部复位优先发生。第53页/共77页注意,RES失效后RESOUT将保持高电平2个时钟周期,即高有效;然后在RES失效4.5个周期后CPU完全退出复位状态,开始执行第一个有效的指令。第54页/共77页上电复位后CPU的动作上电复位后的CPU和内部外设接口状态如下:186CPU开始工作,从FFF0开始执行指令;片选信号中UCS生效,其他片选失效;DRAM控制器失效;中断控制器失效,之一NMI和trap能进入;通用DMA和SmartDMA通道失效;可编程I/O口:都有内部上下拉,参看手册 可编程定时器失效;第55页/共77页 看门狗定时器开始工作,最大计数周期216个时钟周期。UART都失效;同步串行接口(SSI):失效;HDLC通道:失效;时隙分配器TSA:失效;通用电路接口GCI:失效;USB控制器:失效;CLKSEL1,2:控制PLL的工作模式;第56页/共77页 ADEN/BHE/PIO34:作为ADEN,如果在上电复位时保持高电平或浮空,将可以通过软件配置DA比特,从而控制LCS,UCS,以及其它存储器总线周期的AD总线的地址部分。ADEN内部有弱上拉,故无需外部上拉。而如果此时保持低电平,则AD总线可驱动地址以及数据信号,DA比特失效。ONCE/UCS:复位时为低电平则将使CPU进入ONCE模式;高电平则正常工作。进入ONCE模式,所有脚保持3态,直到下一次复位发生。ONCE脚内部有弱上拉,保证不会随意进入ONCE状态。第57页/共77页UCSX8/MCS0/PIO4:上电复位时低电平保证UCS区域为8比特总线宽度。复位时内部有上拉,所以若配置为16比特宽此脚可以浮空。因为我们普遍使用8比特的BOOT,所以传输设备的应用中都是外接电阻下拉到地。USBSEL2,1:也有内部上拉。用来控制USB PLL的工作模式。USBXCVR/S0:USB外部收发器使能脚,也有内部上拉。返回返回第58页/共77页第59页/共77页二、数据与指令指令:Am186CC/CH/CU的指令序列和80C186、188相同。指令可以不含操作数也可以包括几个操作数。操作数可位于寄存器内,或在指令中,也可在存储器里。第60页/共77页段Segment微控制器包括了下列4个段寄存器1、数据段(DS)。所有对程序变量的访问都是在DS寄存器所指向的这个64K的段内进行的。2、代码段(CS)。这里的64K空间是指令的默认位置。所有代码必须在CS中执行。第61页/共77页3、堆栈段(SS)。微处理器利用SS处理涉及堆栈的操作,例如push和pop操作。堆栈段提供了临时存储空间。4、附加段(ES)。一般支持长字符串操作和较大的数据结构。通过特定的指令可以把ES作为地址的一部分使用;通过段重叠,ES也可作为另外一个DS使用。第62页/共77页处理的存储内容段寄存器选择规则 指令 CS指令(包括立即数)本地数据DS数据 堆栈 SS所有堆栈压入弹出操作;使用BP寄存器的部分存储器 片外数据 ES所有用到DI寄存器作为索引的字符串指令 第63页/共77页数据类型186系列处理器直接支持以下数据类型:Integer(整数):有符号二进制数值,包括8比特字节和16比特字。Ordinal(序数):无符号二进制数值,包括8比特字节和16比特字。Double Word(双字):有符号二进制数值,在两个连续的16比特地址中,或在一个DX:AX寄存器对内。第64页/共77页Quad Word(四倍长字):有符号二进制数值,在4个连续的16比特地址中BCD:不拆包的表示十进制数09ASCII:使用ASCII标准表示各种字符Packed BCD(压缩BCD码):表示两个十进制数的压缩字节;每个nibble(4比特)表示一个十进制数字。第65页/共77页Pointer(指针):长度16或32比特;包含了16比特的偏移地址或是一个16比特基址加上一个16比特的偏移量String(字符串):字节或字的连续序列。大小为164K字节。另外要注意:定义的数据类型一定要适应所处的段的要求。第66页/共77页寻址模式186系列的微控制器支持8种寻址模式,可以分成两大类:1、立即数寻址和寄存器寻址,如下:寄存器操作数模式:操作数是一个8位或16位的寄存器立即数操作数模式:操作数是常数第67页/共77页2、存储器操作数存储器操作数的地址包括两个部分:16比特的段地址和16比特的偏移量。其中,段地址的值可以由段寄存器直接提供,也可以间接寻址或者直接寻址得到;偏移量,也被称作有效地址,可以从下面3个地址分量得到:位移:指令指定的8或16比特立即数基址:BX或BP基址寄存器给出内容索引:SI或DI索引寄存器的值16比特加法的进位忽略,8比特的位移将带符号扩展到16比特第68页/共77页由以上3个地址分量的组合可以得到以下6种寻址方式:直接模式:指令将8或16比特的位移分量作为偏移量。寄存器间接寻址:作为操作数的偏移量位于以下寄存器内部:SI,DI,BX或BP。基址寻址:偏移量等于基址(BX或BP)+位移第69页/共77页索引模式:偏移量等于索引寄存器(SI或DI)+位移基址索引模式:偏移量等于基址寄存器的值+索引寄存器的值基址索引加位移寻址:偏移量等于基址寄存器的值+索引寄存器的值+8或16比特位移值第70页/共77页举例:直接寻址:mov ax,ds:4寄存器间接寻址:mov ax,si基址寻址:mov ax,bx4索引寻址:mov ax,si4基址索引寻址:mov ax,sibx基址索引位移寻址:mov ax,sibx4返回返回第71页/共77页三、开发与调试工具编译工具一般使用BC4.5或5.0 调试工具推荐使用以下两种:186调试平台是网管开发部开发的专门供硬件人员前期调试使用的工具,目前可以支持186和860。主要用于软件人员介入前硬件的自测,可以完成读写寄存器,批量写入寄存器,读写I/O口等功能。具体使用方法请参看该软件自带的帮助文件。PDRT186是一款DOS下的调试工具;功能较完备。下面将重点说明。安装目录:Ntdevd1h2开发软件186仿真器二者在对186环境调试时都利用了高速UART口第72页/共77页使用PDRT186进行调试前,需要首先烧结一个MONITOR芯片,烧结文件由网管部MCU科提供。将烧结好的芯片放入单板;做好调试线一根调试线一端连接到PC机的COM口,另一端插在单板上预留的调试插针位置上,注意方向打开PDRT186.INI文件,修改内容到正确的COM口以及速率,保存退出;将外部看门狗的WDO脚撬起,防止看门狗复位;运行程序,调入要调试的程序即可本环境可以设置断点,可以修改内部寄存器的值返回返回第73页/共77页四、调试实例遇到186最小系统跑不起来时,可用以下方法排除故障:1、首先检查供电是否正常,单板上通常都有几种电源的测试点,可在此处测量电压。186本身的管脚象12,27,40等都接3.3V2、其次要保证复位正常,如果CPU处于复位状态出不来,一定也是跑不起来的。推荐管脚:RES(114脚),低电平复位;如果出现周期性复位,请检查看门狗电路是否正常。第74页/共77页3、如果以上都正常,接下来将测量时钟。CLKOUT(60脚)应有22M时钟输出,如果没有则测量外接晶体是否起振,检查两个电容C1,C2是否正常工作。这部分电路原理如下图第75页/共77页4、如果还是不能正常工作,可以看是否不能初始化,那么就需要检查BOOT芯片接触是否良好,外挂的RAM器件是否正常;否则可以更换器件5、最后如果一切都好,但还是不工作,只有更换186本身。以上假设均是在电路正确情况下发生。如果电路设计有问题,表现出来的情况将是各种各样的,是复杂的。第76页/共77页谢谢您的观看!第77页/共77页