MPC860培训教材中文版下.docx
《MPC860培训教材中文版下.docx》由会员分享,可在线阅读,更多相关《MPC860培训教材中文版下.docx(77页珍藏版)》请在冰豆网上搜索。
MPC860培训教材中文版下
14---1在本章中你可以学到:
一、概念SMC
二、列出SMC管脚
3、描述SMC如何工作
4、描述在UART中SMC如何接收和发送。
五、初始化SMC为UART
14---2什么是SMC?
SMC为2个全双工通道,编程能够配置它们独立支持UART,透明方式和GCI。
SMC比SCC的能力少一些,它支持少一些协议,而且CPMRISC提供的效劳也少一些。
那个图说明SMC的工作。
注意,与SCC一样,SMC利用缓存描述字符,缓存在存储器中,与SCC一样,SMC向CPMRISC提供请求,使SDMA传送数据。
SCC与SMC一个显著的不同为没有FIFO做接收和发送工作,相反接收和发送为双缓存。
让咱们看一下SMC接下班作。
第一,数据接收到接收移位器,当第一个数据抵达时,SMC决定第一个缓存描述符是不是
空。
然后,SMC向CPMRISC请求效劳。
第3步,CPMRISC通过写SDMA从接收寄放器中转移命令入当前接收缓存。
此刻,让咱们看一下SMC发送工作。
第一,在发送寄放器中必需有空间,SMC查询第一个发送缓存描述字符,当有数据发送时,SMC向CPMRISC请求效劳。
然后,CPMRISC写SDMA从当前发送缓存中移动命令到发送寄放器。
SMC重要的特性有:
一、以UART或透明方式传输数据。
二、工作在非复用串行接口(NMSI)方式或时分复用总线。
3、支持TDM的GCI为ISDN应用。
4、工作在全双工。
五、经环回和回波方式支持测试和调试。
14---3什么是SMC管脚?
以下图总结SMC管脚。
有3个SMC管脚,一个发送管脚,一个接收管脚步和同步管脚,同步管脚在发送和接收开始后,只用于透明方式。
那个图说明了在端口B中这些管脚的位置。
一些能够共用,用户必需依照需要配置那个端口,它能够通过端口配置寄放器实现。
14---4SMC举例。
这张图说明了SMC工作的例子。
SMC通经常使用于RS232,能够将发送和接收管脚连接到RS232接口,那个接口接到一个DB9插座或支持连接到一个终端。
在图中的设备能够通过一个并行I/O管脚来许诺,数据输出了(DO3)线接到一个并行I/O管脚,如此,许诺860读I/O管脚以决定数据是不是预备好。
14---5SMC怎样工作?
那个模块图描述SMC工作。
注意,与SCC比较,SMC利用双缓存,而不是FIFO,一样,没有编码器。
解码器,分界符等。
SYNC管脚支持透明传输,操纵发送和接收的工作。
SMC时钟能够从4个内部波特率发生器之一驱动,或从一个外部时钟管脚驱动,SMC为发送和接收利用相同的时钟。
14---6SMC的UART编程模式(1/4)
第一个寄放器为串行接口模式寄放器,它概念串行接口工作模式。
SMCx域选择NMSI或TDM模式,另外SMCxCS域选择SMC的时钟源,其它许多域操纵只有TDM利历时的功能。
SMC模式寄放器依照利用的协议改变配置,这张图说明的为UART,举例来讲,包括一个参数长度域,停止长度域指示是不是为1个或2个停止位,下面为优先许诺和夺偶模式,SMC模式域,SMC必需有‘10’值此概念为UART协议,还必需包括接收许诺和发送许诺域。
14---7SMC的UART编程模式(2/4)
另外,SMC编程模式包括发送的接收缓存描述符。
它与SCC的发送和接收缓存描述符格式相似,这些描述符包括空,终止,中断和不中断模式位。
一样包括指示帧,奇偶和溢犯错误的位。
14---8SMC的UART编程模式(3/4)
SMC一样有事件寄放器和相应的屏蔽寄放器,可能的事件有接收到一个中断顺序的终止或接收到一个中断参数;条件发送,缓存发送缓和存接收。
14---9SMC的UART编程模式(4/4)
另外,编程模式包括SMCUART特定参数RAM。
在SMCUART特定参数RAM中,MAX_IDL表示字符之间最多的空闲字符数。
若是MAX_IDL字符数量在下一字符接收到之前已接收到,空闲超时发生,缓存关闭。
IDLC为临时空闲计数器,RISC可用它来存储MAX_IDL超时,处置的当前计数值,用户不用对它初始化或读/写那个计数器。
BRKLN存储器最后接收到的断字符的长度。
BRKEC为接收断条件计数器,它为显现的单独错误计数器。
BRKCR为中断计数寄放器,SMCUART操纵器在一个停止发送死令发送时发出一个中断字符顺序,那个计数器,决定操纵器发送的中断字符的数量。
最后,R_MASK为一个临时位屏蔽。
14---10SMC怎样发送UART?
那个状态图表示SMC在UART中如何发送字符?
当在SMC模式寄放器中的TEN位设置后,SMC开始于发送许诺状态,一旦,SMC被许诺,它开始发送空闲位。
SMC查询第一个发送缓存控述字以决定是不是有数据发送及缓存是不是预备好,它然后开始发送。
在发送时,SMC从存储器中移动字符到寄放器,处置发送直到最后一个缓存字符来到,这时,SMC进入发送关闭状态,关闭缓存。
在发送关闭状态,SMC清除预备好位,除非持续模式位被设置,然后增加指针指向下一个发送缓存。
若是另一个发送缓存预备好,SMC从头进入发送状态并继续发送,不然,SMC从头进入发送许诺状态,开始发送空闲位,等待下一个发送缓存描述字预备好。
14---11SMC怎样接收UART?
那个状态图描述SMC如何在UART中接收字符?
当在SMC模式寄放器中的,REN位设置好,SMC进入接收许诺状态。
SMC然后等待一个字符到来。
当‘E’位指字好有一个空缓存预备好。
而且有一个字符来到,SMC进入接收状态,开始接收字符进入接收缓存。
SMC持续接收数据直到发生接收缓存关闭,这时,SMC进入接收关闭状态,若是进来的数据超过数据缓存的长度,SMC在表中取下一个缓存描述字,若是为空,继续发送到相应的数据缓存。
在接收关闭状态,SMC清除‘E'位,除非‘CM’位等于1,增加指针指向下一个接收缓存,若是‘CM’位等于1,SMC不清除‘E’位,如此,许诺在下一次设备读取那个数据缓存时重写相应的缓存。
从接收关闭状态,SMC能够从头进入接收状态,继续接收输入数据或它能够从头进入接收许诺状态。
在以下情形下能够发生接收缓存关闭条件。
一、接收缓存满,表示接收到的字符数是不等于MRBLR。
二、一个空闲超时发生,表示MAX_IDL是不是等于持续字符空闲次数。
3、中断条件发生,表示接到一个中断字符。
4、帧错误发生,表示SMC接收到一个无停止位字符。
五、奇偶错误事件中的接收缓存关闭条件发生。
14---12怎样为UART初始化860SMC(1/6)
那个地址为利用中断设置SMC为UART的进程,那个地址列出一些假设条件。
第一,用户初始化SDCR,它为一个能够提供SDMA,一个仲裁ID以提供一个U总线上的优先级的寄放器。
然后,用户初始化依照需要配置端口,SMC的管脚有不同功能,如此用户必需依照用途来配置这些管脚。
第3步:
若是用波特率发生器作为时钟,波特率配置率寄放器必需被初始化。
14---13怎样为UART初始化SMC(2/6)
第4步:
初始化SIMODE寄放器,它包括是不是采纳NMSI或TDM模式,概念时钟源,设置诊断模式,剩下位在概念TDM时才用。
14---14怎样为UART初始化SMC(3/6)
第5步:
初始化SMC参数RAM,包括RBASE和TBASE和最大接收缓存长度寄放器。
第6步:
初始化接收和发送参数,方式为写命令到相应的命令寄放器(CPCR)
第7步:
初始化UART参数RAM包括错误计数器和MAX_IDLE。
14---15怎样为UART初始化SMC(4/6)
第8步:
初始化接收缓存描述字。
第9步:
初始化发送缓存描述字。
14---16怎样为UART初始化SMC(5/6)
第10步:
因为假设为复位条件,因此此步不需要在这种情形下,事件寄放器已被清除,在更通用的情形下,用户如举例所示写值0xFFFF在事件寄放器来清除它。
第11步:
初始化屏蔽寄放器对希望事件许诺中断。
第12步:
为许诺产生中断的设备初始化CIMR。
14---17怎样为UART初始化SMC(6/6)
第13步:
初始化SMC模式寄放器,这张表列出了你要初始化的几个参数,包括字符长度。
停止位长度,许诺奇偶位。
第14步:
许诺在SMC模式寄放器中发送器或/和接收器。
15---1在本章中你将学到:
1.什么是SPI?
2.什么是SPI管脚?
3.SPI怎么工作?
4.SPI如何按时数据?
5.SPI如何发送和接收数据?
6.如何初始化SPI
15---2什么是SPI?
串行外设接口为一个全双工,同步,字符格式通道,支持4线接口,包括接收,发送,时钟和从选择。
那个图表示串行外设接口的大体工作,SPI接收器和发送器为双缓存的,它的大小相对应一个2个字符的有效FIFO。
第一,移位寄放器接收输入数据,将它移到接收寄放器,当接收寄放器填上,SPI向申请优先器提出申请,然后将请求转到CPMRISC。
CPMRISC用SDMA将操作符从接收寄放器中移到当前接收缓存,这些接收缓存通常在外部存储器中。
一组接收缓存描述字存在于双端口RAM中,每一个接收缓存描述字有一个指向存储器中缓存的指针。
每一次只有一个缓存描述字是活动的。
在SPI的一个指针指向接收缓存描述字组的基础,另一个移动的指针,在处置每一个同意缓存描述字时,从一个描述字移到另一个描述字。
基于指针当前的指向,每一次只有一个接收缓存描述字为活动的,SDMA将数据移入那个缓存。
为发送数据有一个发送寄放器,SPI向申请优先器发出申请,CPMRISC响应请求,利用SDMA将操作码从当前活动的传输缓存器发送到寄放器。
发送缓存描述字具有和接收缓存描述字一样的功能。
在双端口RAM有一组发送缓存描述字,有一个指针向开始的描述字,另一个活动指针那么从描述字转向另一个描述字。
缓存描述字永久在双端口RAM中,用户初始化这些缓存描述字,数据本身那么存储在外部存储器中。
15---3什么是SPI管脚?
以下图为SPI管脚总结:
SPI能够为每一个串行通道被配置为主或从方式。
当SPI作为主方式时,它产生许诺和时钟信号,当它为从方式时,许诺和时钟为SPI输入信号。
有4个SPI管脚,第一个为SPI主出从入或SPIMOSI,那个管脚在主方式时为输出在从方式时为输入;第2个管脚为SPI主入从出或SPIMISO,那个管脚在主方式时为输入,在从方式时为输出。
下面是SPI时钟管脚,或SPICLK*,它永久用于按时数据。
若是SPI工作为主方式,这设备提供时钟输出信号。
从SPIMISO管脚移入接收数据,并输动身送数据到SPIMOSI*管脚。
若是SPI为从方式,那么由主设备提供时钟。
图中所示,在860SPI为从方式时,最后一个管脚被用为为SPI从选择管脚或SPISEL*。
SPISEL*管脚许诺SPI从方式的输入。
如SPI为主方式,事实上那个管脚不用;若是SPISEL为设量,而SPI工作为主方式时,SPI指出一个错误时,就会产生一个中断。
4个SPI管脚位于端口B(28到31)。
有2个管脚能够共享,如此用户必需选择这些管脚的功能。
15---4接口举例
那个例子说明MPC860接到一个MPC2814EEPROM上。
860上的SPI主入出从接到2814的从出,一样860上的主出从入接到2814的从入,时钟管脚提供相应的按时,端口管脚驱动从选择输入。
SPI的重要动能为:
1.它工作为同步,全双工。
2.可支持主,从和多主配置。
3.设置缓存描述字中,‘CM’位能够提供不中断传输模式。
不中断传输模式对自动扫描一个外设超级有效。
4.支持可编程波特率发生器。
5.有开路输出管脚,能够用于多主模式。
6.有本地环回能力,对识测试和调试有效。
15---5SPI怎样工作?
以下图说明了SPI操纵器的工作。
那个地址说明了SDMA和串行操纵器,一样还说明了发送和接收寄放器及一个移位寄放器,发送和接收部份用相同的时钟,它由SPI主方式的波特率发生器驱动的,在从方式时为外部提供。
在SPI传送时,数据同时发送和接收。
接收数据进入移位寄放器,同时发送数据移出。
SPI将接收的数据写入缓存,字符能够为16位。
新的信息能够进入接收寄放器。
一样地,新的发送信息能够从一个发送缓存中进入移位寄放器。
15---6SPI编程模式(1/2)
SPI模式寄放器有12个域,包括PM(0:
3),作为波特率发生器的标尺。
另一个(2/2)域配置SPI作为主或从。
下一个为命令寄放器或SPCOM。
当SPI配置为主方式,写‘1’到STR域使SPI开始从SPI发送缓存发送数据或从SPI接收缓存数据。
事件寄放器和屏蔽寄放器包括相同错误、忙条件,缓存已发送缓和存已接收的域。
MME表示多主错误,那个位在MPC860工作在主方式时,从选择管脚被定为外部设置。
15---7SPI可编程模式
接收和发送缓存,缓存描述字包括空,终止,中断持续模式和最后位,另外,接收缓存描述字包括一个指示溢出的位,而发送缓存描述字包括一个欠载的域,最后,在SPI工作为主模式时,SPISEL*设置时置多主错误位。
在发送和接收缓存描述字中的缓存地址域指出什么缓存碰到状态位描述的条件。
15---8SPI如何定时数据(1/2)
此页和下页为附加的时序图,说明2个操纵位的阻碍:
在模式寄放器中的CI和CP。
CI为时钟翻转,操纵翻转或缺少时钟;CP为时钟相位,操纵何不时钟将设置和全页空。
当CP等于O。
在第一个时钟边缘发生时,数据由主产生,并由从收回。
15---9SPI定时数据(2/2)
相反,当CP等于1时,第一个时钟边缘显现,随着为数据从主设备显现。
15---10SPI怎样工作在主方式
此图说明SPI为主方式的发送和接收字符,当SPI作为主方式时,它发送数据到外设SPI从设备。
从设备发送一个答复,在数据互换之前,CPU核心将要发送的数据送到数据缓存,用‘R’位设置配置一个发送缓存描述字,配置一个或多个接收缓存描述字。
当‘EN’位在SPI模式寄放器被设定后,SPI进入SPI许诺状态。
在0x80值写入SPI命令寄放器之前,SPI维持在SPI许诺状态.然后SPI进入发送和接收状态,开始发送和接收数据,在发送和接收寄放器中移动字符。
SPI操纵器在SPICLK管脚产生了可编程时钟脉冲。
SPI继续发送直到发送工作完成,或一个错误发生,SPI然后进入关闭缓存状态,这时,它修改状态和操纵域,并增加发送指针。
‘L’位状态决定SPI是不是从头进入SPI许诺状态,或继续传送另外缓存的内容。
注意,若是SPISEL*在SPI工作为主方式时显现,SPI产生一个错误,必需从头初始化SPI操纵器。
15---11SPI作为从是如何操作的?
这张图说明作为从方式SPI如何发送和接收字符。
当SPI工作为从方式时,它接收来自SPI主设备的信息,同时发送答复,在数据互换之前,CPU核心将要发送的数据写入数据缓存,用‘R’位设置配置发送缓存描述字,配置一个或多个接收缓存描述字。
当SPI模式寄放器的“EN”位设置为1时,SPI进入SPI许诺状态,SPI维持SPI许诺状态直到Ox80值写入SPI命令寄放器,SPI然后开始进入发送状态。
在接收时钟确认之前,SPISEL*必需显现。
一旦SPISEL*显现,SPI进入发送和接收状态,然后它将字符从存储器移到发送寄放器,或从接收寄放器移到存储器,SPI以主SPICLK速度发送这些数据。
数据发送直到发送终止或收到一个满的缓存或一个错误产生,发送继续,直到没有数据或SPICLK*位为负。
15---12SPI怎样响应多主错误?
SPI不以工作为多主环境,这时,一些SPI连接到相同总线上,在那个环境中,一次只有一个SPI设备能够为主方式,其它必需为从方式。
当SPI配置为主方式,它的SPISEL*输入为有效或为低时,就会产生一个多主错误,因为其它SPI设备试图占用总线。
SPI设置事件寄放器的MME位,一个可屏蔽中断向CPU核心发出,然后,SPI禁止SPI工作并禁止SPI管脚的输出驱动。
在从头利用SPI时,CPU核心必需在SPMODE寄放器中,清除EN位。
在错误修正后,MME位必需清除,SPI必需如用复位以后一样的进程来许诺。
15---13SPI主/从举例
这张图说明了SPI为几个从方式的连接举例。
注意,从SPI为并行连接,所有主入从出信号,连接在主出从入信号,在那个配置中,一个单独的从SPI由860的并行I/O管脚,或如此例所示由外部解码电路来选择。
15---14SPI多主举例
这张图描述了一个860所示为主0的一个多主环境,一样还说明了主1,为了使这2个主之间操作无误,必需提供某种仲裁器,那个仲裁器选择什么设备在一个时候作为主,如此可幸免多主错误。
15---15怎样初始化860SPI(1/4)
这描述了MPC860利用中断的初始化SPI的步骤,那个例子假设IMMR已初始化好。
若是没有初始化,用户必需进行初始化。
例子还假设CICR已初始化好,若是没有,而且若是要利用中断用户必需初始化CICR,复位件条件已存在。
第一,用户初始化SDCR,那个寄放器能够给SDMA一个仲裁ID,以为它提供U总线上一个优先级。
然后,用户配置所需端口。
4个SPI中的2个管脚为可共享的,因此用户必需配置这些管脚为所需功能。
第3步:
必需在RBASE和TBASE所在域初始化SPI参数RAM。
第4步:
通过命令寄放器CPCR初始化接收和发送参数。
15---16怎样初始化860SPI(2/4)
第5步:
初始化接收缓存描述字。
第6步:
初始化发送缓存描述字。
15---17怎样初始化860SPI(3/4)
第7步:
包括若是中断在利用中,如何初始化事件寄放器或SPIE。
第8步:
必需初始化屏蔽寄放器SPIM,以许诺相关事件的中断。
15---18怎样初始化860SPI(4/4)
第9步:
初始化中断屏蔽寄放器CIMR。
第10步:
初始化SPI模式寄放器。
最后,若是设备为主并已预备好发送。
第11步、写Ox80值入SPI命令寄放器开始发送。
16---1I2C特性。
在本章中,你将学到:
1.I2C的功能。
2.I2C如何在主/从方式或发送数据?
3.什么是I2C编程模式。
彼此保留或电路I2C通信操纵器为一个同步,多主总线,用于连接多个板上集成电路。
I2C通信操纵器的功能包括:
1.同步,双线接口。
2.双向(全双工)工作。
3.主从I2C方式。
4.多主环境支持。
5.为自动外设扫描的持续发送方式。
6.假设25兆赫兹系统时钟可支持520kHz时钟速度。
7.独产的,可编程波特率发生器。
8.开路漏级输出可支持多主配置。
9.测试所有自环能力。
16---2I2C模块图
这是一个I2C操纵器工作的模块图。
I2C利用2线串行数据,或SDA*和串线时钟,或SCL*来在集成电路与操纵器之间运载数据。
I2C包括发送和接收部份,一个独立的波特率发生器和一个操纵单元。
I2C接收和发送为双缓存,如下图。
在数据传输时,数据从发送数据寄放器到移位寄放器,以时钟速度输出到SDA线,若是I2C为主,它必需提供时钟;不然,若是I2C为从,主设备必需提供时钟。
在数据接收时,数据从SDA线进入移位寄放器,然后进入接收寄放器。
16---3I2C如何发送数据,主/从
此图说明了数据如何由I2C主到从发送的。
为将I2C与IC接口,必需连接相应的时钟线和数据线。
SDA*和SCL*为双向的,通过外部+伏或5伏拉起电阻连线到一个正向供给电压。
通过生成起止后,I2C操纵数据传送。
那个地址例举说明,当SDA*为负旦SCL*为高时起始条件的产生。
记住SCL*为双向,开路漏级串行时钟,不管何时这种组合出此刻线上,它表示为起始条件发生。
那个地址还举例说明了停止条件,它表现为当SCL*为高时出此刻SDA*一个上升沿。
它终止通信,在一个字符发送,并当BD中的L位等于1时产生。
在起始和订止条件之间,数据必需稳固和有效,而时钟必需高,当SCL*为低时,数据能够改变。
16---4数据传送怎样确认。
那个图描述接收器如何确认接收一个数据字节。
能够有许多发送的字节,每一次发送器完成一个字节的发送,接收器将SDA*线拉低第9个位的时刻以确认接收到数据。
16---5I2C参数RAM
I2C参数RAM存储器映象与SCC通用目的参数RAM很相似。
用户必需初始化说明中黑字的部份。
第1个域称为RBASE,它包括指向接收缓存描述组中开始的指针,它为一个半字域。
第2个域为TBASE,它包括指向发送缓存描述字组中开始指针,一样它为一个半字域。
下面2个域,RFCR和TFCR概念发送和接收的字节顺序和通道号码,在RFCR和TFCR中,字节顺序位概念,将在接收和发送的数据,既数据是不是为大endian,小endian或PowerPC小endian格式,一样在RFCR和TFCR中,AT1到3概念地址类型,你能够在用户册找到关于AT1到3域更详细的信息。
在用户手册中,有一个为地址类型概念的表,若是CPMRISC完成一个存储器读写,ATO为一、AT一、2和3包括在RCFR或TFCR概念的通道号码。
最后,第5个参数为最大接收缓存长度MRBLR,那个域包括与I2C接收缓存有关的最大长度。
16---6I2C编程模式(1/3)
I2C编程模式包括几个寄放器,其中之一为I2C模式寄放器或I2MOD,这是一个读/写寄放器,在复位时清除,操纵I2C工作模式和时钟源。
REVD为翻转数据域,决定接收和发送字符位顺序,它能够翻转字节的位顺序,这时,一个字符的最不重要位第一个发送和接收。
GCD为通用挪用禁止域,决定I2C是不是响应一个通用挪用地址,一些I2C协议包括一个通用挪用地址,功能近似为一个广播地址,GCD域许诺编程者许诺或禁止响应一个通用挪用地址。
FLT位为时钟过滤,它决定I2C输入时钟是不是过滤以在噪声环境下访止尖峰信号,下一个为PDIV,予除,它决定在时钟送入波特率发生器之前的分频数。
SIU产生BRGCLK,它作用为I2C的时钟源,能够用32,16,8或4去除BRGCLK,最后,EN域许诺I2C。
16---7I2C编程模式(2/3)
第一为I2C地址寄放器或I2ADD,每一个从I2C设备有一个相关的地址寄放器。
在一个数据传送中,I2C地址为紧跟在开始条件后的一个字节,SAD(0:
7)为I2C端口的从地址。
然后为波特率发生器寄放器或I2BRG,它进一步分频波持率发生器时钟。
DIV(0:
7)概念BKG分频的分频率,予分频输入除以2乘以(〖DIV0到DIC7〗+3),时钟50%为有效周期。
16---8I2C编程模式(3/3)
最后为命令寄放器I2CCOM,STR域作用为与SPI相似的功能。
若是用户已配置这些缓存为预备状态下,在主方式设置STR位使I2C操纵器开始从I2C发送缓存中发送数据。
在从方式时,当I2C为空闲设置那个位。
使I2C从I2C发送缓中装入发送数据寄放器,当接收到的地址与从地址一致时开始发送。
另外,M/S位配置I2C工作为主或从方式。
16---9I2CRX缓存描述字
这张表描述接收缓存描述字。
利用接收缓存描述字,通信处置器报告每一个接收到数据的缓存信息,通信处置器关闭当前缓存,产生一个可屏蔽