LSSP芯片使用说明
3.3.1功能
串行控制器结构包括:
总线接口:连接IO模块;
波特率产生模块:根据分频寄存器设置,产生正确的波特率;
计数器:根据8N1协议,控制位串的发送和接收。
串行控制器包括2个寄存器:
16位分频参数寄存器;
8位发送/接收寄存器(复用相同寄存器地址)。
3.3.2操作过程
在对串行控制器的数据寄存器进行写访问时,第一次访问将立即结束,数据将拷贝到发送寄存器中并且立刻开始发送,随后的访问如果在前一次访问未结束的情况下将等待,直到上一次发送结束才可以继续执行。
在读访问时,如果接收寄存器中无有效数据时,指令将循环等待,直到接收寄存器中具有有效数据,在多道程序同时读取接收寄存器中的内容时,将产生竞争,竞争成功的程序将继续执行,不成功的将等待下一次有效数据的出现。
3.4.3工作原理
根据命令的功能,确定是否是访问串行控制器。如果是对串行控制器的访问则进一步判断是访问分频参数寄存器还是访问数据寄存器。根据对数据寄存器的读写请求来区分串行控制器的行为是发送还是接收。
串口占据两个特殊寄存器地址,分别为FFF5和FFF6,其中地址FFF5用来配置串口发送和接收的分频参数,16位;FFF6用来发送或接收数据。在发送或接收过程中改变分频参数将导致发送或接收数据错误,因此在发送或接收过程中不应改变分频参数的值。
分频参数的计算采用如下算法:
数据寄存器的宽度为8,支持同时对数据寄存器的读写。
编程中,使用MOVI和MOVO指令来设置串行控制器的分频参数寄存器并控制串行控制器的读写操作。具体使用中,需要首先设置分频参数寄存器,而后开始对数据寄存器进行读写。
对于单道程序来说,串口的控制相对简单,使用步骤为:
设置串口的分频参数;
写入串口数据寄存器即开始发送数据;
读取串口数据寄存器即将当前接收到的数据返回,如果当前未接收到数据则等待,直到接收到有效数据;
由于没有其它道程序影响,所以不需要考虑多道程序重复设置串口的情况。在单道程序发送过程中不能改变分频参数寄存器,否则将导致发送的数据错误。
对于多道程序来说,串口的控制应注意以下几点:
当某道程序在发送或读取过程中,不应该改变串行控制器的分频参数,如果改变分频参数,则发送或接收数据的正确性将不能保证;
当多道程序同时读取串行控制器的数据寄存器时,可以取得数据的程序道不能确定,但仅有一道程序能够获得数据,其它道程序将继续等待下一次有效串口数据的接收;
当多道程序同时写串行控制器的数据寄存器时,其发送顺序将不能保证,数据的发送将按照先后顺序正确发送。如果每道程序都需要发送一组数据,则需要使用同步信号寄存器来阻塞其它道程序对串行控制器的访问,当数据全部发送完后再清除同步信号寄存器,使其它道程序能够访问串行控制器;
当多道分别读写串行控制器的数据寄存器时将没有影响;
当多道程序写分频参数寄存器时,如果此时有数据在发送或接收,则发送或接收到的数据将不能保证其正确性。
3.4事件
LSSP引入事件处理机制,利用事件处理寄存器ESR寄存器和ESER寄存器记录和处理内/外部发生的事件。
外部状态寄存器ESR,8位,可读。ESR记录外部发生(包括两个内部定时器的溢出)事件的状态,外部状态可屏蔽。当ESER(i)为1时,ESR(i)相应外部1状态被锁存,直到读ESR寄存器指令的执行,读ESR指令执行后ESR(7:0)的内容被全部读出,同时置ESR(7:0)为全0。外部状态为上升沿触发方式。
外部事件状态赋能寄存器,8位,可读写。当ESER(i)=1时,相应的ESR(i)被赋能,若ESR(i)=1,那么读ESR寄存器指令执行使ESER(i)清0。
用户可以根据不同的事件标志,利用LOADP指令激活相应的事件服务程序。
多个事件服务程序能同时执行,但不能超过芯片规定的总道数。
外部事件的具体使用请参阅《L结构处理器编程及应用(版一)》。
3.5定时器
3.5.1功能特点
LSSP中具有两组定时/计数器,定时/计数器的主要功能是完成对某个事件源的计数并根据是否产生计数器溢出事件来通知用户程序。在LSSP中,每组定时/计数器的功能完全相同,其特点如下:
支持40位计数器,在100MHz情况下,计数时间最长为10995秒;
支持多种计数源,计数源可以是内部时钟,外部时钟或外部事件;
支持多种计数方式,可以向上或向下计数;
支持一次计数和自动重复装载;
支持计数结束时产生事件。
3.5.2计数源
定时/计数器具有多种计数源,包括以下7种:
内部时钟;
外部时钟;
外部事件;
外部事件为0时,对内部时钟计数;
外部事件为0时,对外部时钟技术;
外部事件为1时,对内部时钟计数;
外部事件为1时,对外部时钟技术。
3.5.3计数模式
在计数模式上有以下4种:
一次计数;
重复计数;
向上计数,从0开始,计数到指定值;
向下计数,从最大值开始,减到0。
3.5.4工作原理
根据命令的功能,确定是否是访问定时/计数器。如果是对定时/计数器的访问则进一步判断是访问控制寄存器还是访问分频参数寄存器。根据控制寄存器的启动/停止位来启动或停止计数器,在启动/停止计数器的同时可以选择是否清除已有计数的值,3个16位寄存器组合成一个定时/计数器,如图12所示,低地址寄存器
待续。。。。。。。。
发表时间:2006年10月30日11:56:06