




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Q SUNPLUSV1.0 - Jan 13, 2005中文版19, Innovation First Road ? Science Park ? Hsin-Chu ? Taiwan 300? R.O.C.Tel: 886-3-578-6005 Fax:886-3-578-4418 E-mail:mcu Q SUNPLUS普通IO 口模拟标准SPI总线版权声明凌阳科技股份有限公司保留对此文件修改之权利且不另行通知。凌阳科技股份有限公司所提供之信息相信为正确且 可靠之信息,但并不保证本文件中绝无错误。请于向凌阳科技股份有限公司提岀订单前,自行确定所使用之相关技 术文件及规格为最新之版本。若因贵公
2、司使用本公司之文件或产品,而涉及第三人之专利或著作权等智能财产权之 应用及配合时,则应由贵公司负责取得同意及授权,本公司仅单纯贩售产品,上述关于同意及授权,非属本公司应 为保证之责任。又未经凌阳科技股份有限公司之正式书面许可,本公司之所有产品不得使用于医疗器材,维持生命 系统及飞航等相关设备。Sunplus Technology Co., Ltd.PAGE 1V1.0 - Jan 13, 2005Q SUNPLUS普通IO 口模拟标准SPI总线版本日期作者修订内容对应页码V1.0 2005/)1/13初始版本Sunplus Technology Co., Ltd.PAGE 1V1.0 - Ja
3、n 13, 2005Q SUNPLUS普通IO 口模拟标准SPI总线页1系统设计概要 11.1系统设计说明 11.2系统框图 11.3通信时序 11.4通信协议 31.5通信速率 41.6 MCU使用资源 41.6.1 主机 41.6.2 从机 1 41.6.3 从机 2 52硬件连接 62.1硬件连接 63软件说明 73.1档案构成 73.1.1 主机 73.1.2 从机 1 73.1.3 从机 2 73.2子程序说明 73.2.1 主机 73.2.2 从机 1 93.2.3 从机 2 103.3变量说明113.3.1 主机113.3.2 从机 1 153.3.3 从机 2 183.4程序设
4、计 213.4.1主机主程序 213.4.2主机中断服务程序 223.4.3 1号从机主程序 233.4.4 1号从机中断服务程序 243.4.5 2号从机主程序 253.4.6 2号从机中断服务程序 274附录 284.1参考资料来源 28Sunplus Technology Co., Ltd.PAGE 1V1.0 - Jan 13, 2005SUNPLUS普通10 口模拟标准SPI总线284.2通信波形Sunplus Technology Co., Ltd.PAGE 3V1.0 - Jan 13, 2005令 SUNPLUS普通IO 口模拟标准SPI总线1系统设计概要1.1系统设计说明本设
5、计使用普通10 口模拟标准SPI总线,实现SPMC65P2404A的多机通信。SPI ( Serial Peripheral In terface )总线系统是一种同步串行外设接口,它使用4条线:串行时钟线(SCK)、数据输出线、输入线和片选线(SS)。支持同步全双工通信方式。在本设计中,用1号从机采集按键,2号从机通过一个拨码开关控制一个计数器进行计数, 从机获得的键值和计数值将送主机,主机用4个数码管显示。主机显示的形式为:从机号 +键值(或计数值)。1.2系统框图图1-1 SPMC65P2404A多机通信系统框图1.3通信时序SPI采用同步全双工通信方式,时钟信号SCK由主机产生。主从机
6、的通信时序图分别如图1-2 和图1-3所示:Sunplus Technology Co., Ltd.PAGE 2V1.0 - Jan 13, 2005令 SUNPLUS普通IO 口模拟标准SPI总线SCKSDOSDISampleStrobeSPIIF主机开始发送数据主机接收数据D7 : D6D7D4D3D2D1 D0D7 D6D5D4D3 弋 D2D1D0图1-2主机通信时序SSSCK从机发送并接收数据VJnSDOSDI/ D7 D6:DO .;D7D6 - D5 D4D3 - D2D1 . D0SampleStrobeSPIIFSunplus Technology Co., Ltd.PAGE
7、 2V1.0 - Jan 13, 2005令 SUNPLUS普通IO 口模拟标准SPI总线Sunplus Technology Co., Ltd.PAGE 2V1.0 - Jan 13, 2005令 SUNPLUS普通IO 口模拟标准SPI总线图1-3从机通信时序当待发送数据写入发送缓冲器后,便启动数据发送,数据接收和发送以字节为单位。时序图 中,Sample Strobe 为输入数据采样点,例如从机在 SCK的上升沿对输入数据进行采样接 收,主机在SCK的下降沿对输入数据进行采样接收。SPIIF是发送或接收完一字节数据后产 生的标志,主机或从机传输完一字节的数据后该标志被置为1,可以用于主程
8、序查询或产生SPI中断,在中断服务程序中或查询程序之后需将该标志写0,以清除该标志位。SS为从机的片选线,当SS=0时,该从机有效,接收主机发送的命令;当 SS=1时,该从机的输出端 (SDO )处于悬浮状态。完成上述通信方式,需要三个自定义变量:GP_SPI_TxBuf为数据发送缓冲器,GP SPI RxBuf为数据接收缓冲器,GB Flag为状态变量,其中SPIIF定义如下表所示:Bit B7 B6 B5 B4 B332 B1 B0OperateR/WDefault0NameSPIIF1.4通信协议本协议使用同步方式完成主从式多机通信,主机用查询方式与所有从机通信,从机用中断方 式与主机通
9、信。数据格式如下:命令数据长度数据-8 bit .*8 bit *图1-4数据格式命令用于指示接收器(主机或从机)的动作,OFH表示接收器下一步的操作为发送数据,FOH 指示接收器接收数据。若从机在接收到主机的发送命令 (0FH),但从机此时没有数据发送时, 则从机只回复OFH命令字,指示主机可以结束此次通信,寻址下一个从机。数据长度用于指 示待传送数据块的长度,并且可以根据数据块长度及当前发送或接收的数据个数来确定一帧 数据传输是否完成。命令格式如图1-5所示:命令发送数据接收数据命令字0 0 0 0 1 1 1 11 1 1 1 0 0 0 0图1-5命令格式通信开始时,所有从机处于监听状
10、态,主机用片选信号SS来使能各从机,当某从机查询到片选信号为低电平时,从机开始接收命令。当从机接收完命令字后,将在输出线SDO上产生一握手信号,用于主机查询,主机查询握手信号为高时,将连续发送一帧数据(包括数据 块及长度),通信步骤如下:1. 主机模式:(1) 主机首先使能某从机,并向该从机发送一字节的命令(0FH或FOH);(2) 主机查询输入口 SDI状态,当输入口为高电平时,表明主机通信可以继续;(3) 若步骤(1)中主机发送的命令字为OFH,则主机开始接收从机的命令和数据,若接收到OFH命令字,主机将结束与当前从机通信,并将使能(enable)下一个从机;(4) 若步骤(1)中主机发送
11、的命令字为 FOH,则主机在查询到从机输出高电平后,继续发送其它数据,直至发送完毕,数据发送完后,主机将结束与当前从机通信,并将使能(en able)下一个从机。2. 从机模式:(1) 从机在时钟的上升沿进入外部中断,查询片选信号,若被使能,则接收主机发送的命令并解释命令,从机接收完一字节命令后输出口SDO输出高电平(SDO在接收完命令之前维持低电平);若主机的命令为发送数据,则从机查看是否有需要发送的数据(如键值),若没有数据发 送,则只发送命令字OFH ;若有数据,则将数据按格式发送;Sunplus Technology Co., Ltd.PAGE 2V1.0 - Jan 13, 2005
12、SUNPLUS普通IO 口模拟标准SPI总线(2) 若主机的命令为接收数据,则从机将按数据块长度将接收的数据存放于预定区域;当从机查询到片选线为高电平时,将输出口SDO改为悬浮状态。1.5通信速率时钟信号SCK是通过TimerO定时中断产生的, TimerO中断频率f“= F cpu (CPU clock) /TlPS(prescaler) /TMR1(preload) = 8MHz/2(prescaler)/156(preload)=25.6KHz 。数据传输速 率 R b= fT1 / 2 =12800 (b/s)。1.6 MCU使用资源1.6.1 主机MCU资源内容备注RAM Main.
13、asm33 byteROM Main.asm594 byteTimerTimer2700us定时For main loopTimer040us定时中断Generate SPI clockI/O PORTPORTA PA7PA0LED segmentPORTB PB4PBOcommunicationPORTC PC3PC0LED comPORTD未使用InterruptTimer0定时溢出中断Generate SPI clock1.6.2 从机1MCU资源内容备注RAM Main.asm30 byteROM Main.asm540byteTimerTimer22ms定时For main loop
14、Timer032us定时中断For SPI InterruptI/O PORTPORTAPA7PA0For key scanPORTB PB7PB4communicationPORTCPC3PC0For LED displayPORTD未使用InterruptTimer0定时溢出中断SPI Interrupt163 从机2MCU资源内容备注RAM Main.asm26 byteROM Main.asm368 byteTimerTimerO2ms定时For main loopTimer232us定时中断For SPI InterruptI/O PORTPORTA未使用PORTB PB7PB4co
15、mmunicationPORTC未使用PORTD未使用InterruptTimerO定时溢出中断SPI InterruptSun plus Tech no logy Co., Ltd.PAGE 5V1.0 - Jan 13, 2005SUNPLUS普通IO 口模拟标准SPI总线2硬件连接2.1硬件连接硬件连接电路如图2-1所示,1号从机外接4 X 4键盘及4个发光二极管,键盘的键值为0F , 发光二极管可以显示当前按下的键值。2号从机外接一拨码开关,该开关可以控制内部计数 器计数。主机外接4个数码管,分别用于显示从机号及从机传输的内容(键值和计数值)。主 机用PB4 PB0 口与从机通信,I/
16、O 口的初始化设置为:PB4、PB2设置成低电平输出口,PB1、 PB0设置成高电平输出口, PB3设置成下拉输入口。从机用PB7 PB4 口与主机通信,I/O 口 的初始化设置为:PB7设置成低电平输出口, PB4、PB5设置成上拉输入口, PB6设置成下 拉输入口。为了使空闲的从机释放数据线,在两根数据线上外接两个下拉电阻。图2-1 SPMC65P2404A多机通信应用电路? Sunplus Technology Co., Ltd.PAGE 25V1.0 - Jan 13, 2005SUNPLUS普通IO 口模拟标准SPI总线3软件说明3.1档案构成3.1.1 主机文件名功能类型Subpr
17、ogram.asmSubprogram for communicationSource fileSPIMacro.incMacro for communicationmacroLED_4Disp.asmSubprogram for displaySource filemain.asmMain function for communication and dispalySource fileSPMC65P2404A.inc SPMC65)Xsymbol definitionHead file3.1.2从机1文件名功能类型Subprogram.asmSubprogram for communica
18、tionSource fileSPIMacro.incMacro for communicationmacroMoment4x4.asm Subprogramfor key scanSource filemain.asmMain function for communication and key scanSource fileSPMC65P2404A.inc SPMC65)Xsymbol definitionHead file3.1.3 从机2文件名功能类型Subprogram.asmSubprogram for communicationSource fileSPIMacro.incMac
19、ro for communicationmacromain.asmMain function for communication and countSource fileSPMC65P2404A.inc SPMC65)Xsymbol definitionHead file3.2子程序说明3.2.1 主机F IO In it内容备注InputNoneOutputNone说明设置PA、PC 口属性for display属于LED_4Disp.asmF_TimO_l nit内容备注InputNoneOutputNone说明设置 Interval Timer 时钟主循环定时属于LED_4Disp.as
20、mF_LED_4Disp内容备注InputGB_ShowBuf显示缓冲器OutputNone说明4位数码管显示属于LED_4Disp.asmF Sys I nit内容备注InputNoneOutputNone说明设置系统时钟、Timer0时钟、PB 口属性及中断属于Subprogram.asmF_CSSet ing内容备注InputNone? Sunplus Technology Co., Ltd.PAGE 25V1.0 - Jan 13, 2005SUNPLUS普通IO 口模拟标准SPI总线内容备注OutputNone说明切换从机的片选信号属于Subprogram.asmF_Com muni
21、 cate内容备注InputGB_Mcommand、GB_Address_Tx主机命令字、发送数 据块首地址OutputGB_Address_Rx接收数据块首地址说明数据的发送与接收属于Subprogram.asm322 从机1F_IO_I nit内容备注InputNoneOutputNone说明设置PA、PC 口属性For LED display and Key scan属于Moment4x4.asmF_Timer2nit内容备注InputNoneOutputNone说明设置Timer2时钟主循环定时属于Moment4x4.asmF_Mome nt4x4? Sunplus Technolog
22、y Co., Ltd.PAGE 25V1.0 - Jan 13, 2005SUNPLUS普通io 口模拟标准spi总线内容备注InputNoneOutputGB_KeyValue、GB_KeyDownFlag键值、按键标志说明4x 4键盘扫描属于Moment4x4.asmF_Mome nt4X4_l nit内容备注InputNoneOutputNone说明键盘扫描初始化属于Moment4x4.asmF_Light内容备注InputGB_KeyValue键值OutputNone说明LED显示键值属于Moment4x4.asmF_Sys_I nit内容备注InputNoneOutputNone说明
23、设置系统时钟、Timer0时钟、PB 口属性及中断属于Subprogram.asm323 从机2F_Timer2nit? Sunplus Technology Co., Ltd.PAGE 10V1.0 - Jan 13, 2005SUNPLUS普通IO 口模拟标准SPI总线内容备注InputNoneOutputNone说明设置Timer2时钟主循环定时属于Subprogram.asmF_Sys_l nit内容备注InputNoneOutputNone说明设置系统时钟、Timer。时钟、PB 口属性及中断属于Subprogram.asm3.3变量说明3.3.1 主机GB_Flag内容备注内容说明
24、字节传送标志、片选信号切换标志Size 1byte初始值2Symbol定义None内容值0FFHGB_MComma nd内容备注内容说明主机命令字Size 1byte初始值0FHSymbol定义None内容值0FH or F0HGB_Cou nter内容备注内容说明计数器:用于标示接收或发送数据的个数Size 1byte初始值0Symbol定义None内容值0FFHGB_CSCou nter内容备注内容说明计数器:用于限定主机等待从机的时间Size Ibyte初始值0Symbol定义None内容值03HGB_INT_Cou nter内容备注内容说明计数器:用于标示接收或发送数据的位数Size
25、Ibyte初始值0Symbol定义None内容值016HGP_SPI_BitRate内容备注内容说明设置Timerl定时周期Size Ibyte初始值0Symbol定义None内容值00H、10H、20H、30H、40H、50H、60H、70HGP_SPI_RxBuf内容备注内容说明数据接收缓冲器Size 1byte初始值0Symbol定义None内容值0FFHGP_SPI_TxBuf内容备注内容说明数据发送缓冲器Size Ibyte初始值0Symbol定义None内容值0FFHGB_MCapacity内容备注内容说明主机发送数据块的长度Size Ibyte初始值0Symbol定义None内容
26、值0FFHGB MData Addr内容备注内容说明指向主机发送数据块的首地址Size 8byte初始值0Symbol定义None内容值0FFHGB_SComma nd内容备注内容说明从机命令字Size 1byte初始值0Symbol定义None内容值0FH or F0HGB_SCapacity内容备注内容说明从机发送数据块的长度Size 1byte初始值0Symbol定义None内容值0FFHGB_SData_Addr内容备注内容说明指向从机发送数据块的首地址Size 8byte初始值0Symbol定义None内容值0FFHGB_ShowBuf内容备注内容说明指向显示缓冲区的首地址Size
27、4byte初始值0Symbol定义None内容值0FFHGB_I ndexCom内容备注内容说明数码管扫描计数器Size 1byte初始值0Symbol定义None内容值03H332 从机1GB_Cou nter内容备注内容说明计数器:用于标示接收或发送数据的个数Size 1byte初始值0Symbol定义None内容值0FFHGB_CSCou nter内容备注内容说明计数器:用于限定从机等待主机的时间Size 1byte初始值0Symbol定义None内容值02HGB INT Cou nter内容备注内容说明计数器:用于标示接收或发送数据的位数Size 1byte初始值0Symbol定义No
28、ne内容值016HGP SPI RxBuf? Sunplus Technology Co., Ltd.PAGE 25V1.0 - Jan 13, 2005SUNPLUS普通IO 口模拟标准SPI总线内容备注内容说明数据接收缓冲器Size 1byte初始值0Symbol定义None内容值0FFHGP_SPI_TxBuf内容备注内容说明数据发送缓冲器Size Ibyte初始值0Symbol定义None内容值0FFHGB_MComma nd内容备注内容说明主机命令字Size Ibyte初始值0FHSymbol定义None内容值0FH or F0HGB_MCapacity内容备注内容说明主机发送数据块
29、的长度Size Ibyte初始值0Symbol定义None内容值0FFHGB_MData_Addr? Sunplus Technology Co., Ltd.PAGE 25V1.0 - Jan 13, 2005SUNPLUS普通io 口模拟标准spi总线内容备注内容说明指向主机发送数据块的首地址Size 8byte初始值0Symbol定义None内容值0FFHGB_SComma nd内容备注内容说明从机命令字Size 1byte初始值0Symbol定义None内容值0FH or F0HGB_SCapacity内容备注内容说明从机发送数据块的长度Size 1byte初始值0Symbol定义Non
30、e内容值0FFHGB_SData_Addr内容备注内容说明指向从机发送数据块的首地址Size 8byte初始值0Symbol定义None内容值0FFHGB_KeyValue? Sunplus Technology Co., Ltd.PAGE 17V1.0 - Jan 13, 2005SUNPLUS普通IO 口模拟标准SPI总线内容备注内容说明获取的键值Size 1byte初始值0Symbol定义None内容值0FHGB_KeyDow nFlag内容备注内容说明按键按下标志Size 1byte初始值0Symbol定义None内容值0、1333 从机2GB_Cou nter内容备注内容说明计数器:
31、用于标示接收或发送数据的个数Size 1byte初始值0Symbol定义None内容值0FFHGB CSCou nter内容备注内容说明计数器:用于限定从机等待主机的时间Size 1byte初始值0Symbol定义None内容值02HGB lNT Counter内容备注内容说明计数器:用于标示接收或发送数据的位数Size 1byte初始值0Symbol定义None内容值016HGP_SPI_RxBuf内容备注内容说明数据接收缓冲器Size Ibyte初始值0Symbol定义None内容值0FFHGP_SPI_TxBuf内容备注内容说明数据发送缓冲器Size Ibyte初始值0Symbol定义N
32、one内容值0FFHGB_MComma nd内容备注内容说明主机命令字Size Ibyte初始值0FHSymbol定义None内容值0FH or F0HGB_MCapacity? Sunplus Technology Co., Ltd.PAGE 25V1.0 - Jan 13, 2005SUNPLUS普通IO 口模拟标准SPI总线内容备注内容说明主机发送数据块的长度Size 1byte初始值0Symbol定义None内容值0FFHGB_MData_Addr内容备注内容说明指向主机发送数据块的首地址Size 8byte初始值0Symbol定义None内容值0FFHGB_SComma nd内容备注
33、内容说明从机命令字Size 1byte初始值0Symbol定义None内容值0FH or F0HGB SCapacity内容备注内容说明从机发送数据块的长度Size 1byte初始值0Symbol定义None内容值0FFHGB_SData_Addr内容备注内容说明指向从机发送数据块的首地址Size 8byte初始值0Symbol定义None内容值0FFHGB_TimeC nt内容备注内容说明0.5s定时计数器Size 1byte初始值0Symbol定义None内容值0250GB_DisC nt内容备注内容说明计数器:计数值送主机显示Size 1byte初始值0Symbol定义None内容值0F
34、H3.4程序设计3.4.1 主机主程序主程序的主要任务是调用显示、数据传输控制等子程序,实现通信时序的总体控制及接收数据的显示。主程序循环时间为1ms,采用Interval Timer溢出查询方式实现。主循环时间用 于4位数码管显示的位扫描,也用于限定主机等待从机答复的时间,例如当某从机在限定时 间内未答复主机的请求,则主机将结束与该从机通信,查询下一个从机,这样可以避免因某 从机故障导致主机死锁。主程序流程如图3-1所示:N图3-1主机主程序流程图342 主机中断服务程序主机的中断服务程序用于产生数据传输的时钟信号,并且在时钟上升沿之前将数据送至数据 口,在时钟的下降沿读取数据口上的数据。该中断为Timer。定时溢出中断,采用CPU时钟信号作为时钟源,分频系数可以设定。程序流程如图3-2所示:图3-2主机中断服务程序流程图3.4.3 1号从机主程序主程序的主要任务是调用4X4键盘子程序,并将获得的键值及从机号写入发送缓冲区中。主程序循环时间为2ms,采用Timer2溢出查询方式实现。主循环时间用于按键去抖,也用于 限定从机等待从主机答复的时间,例如当主机在限定时间内未连续给该从机发送数据,则该 从机将初始化中断计数器,这样可以使该从机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿里地区2025-2026学年八年级下学期语文期末模拟试卷
- 2025 年小升初天津市初一新生分班考试数学试卷(带答案解析)-(冀教版)
- emshkm2025年河南省建设工程造价员资格认证考试试卷
- 社区节前安全知识培训课件
- 山东省聊城市东昌府区王口小学2024-2025学年二年级下学期数学期末检测卷(无答案)
- 北师大版五年级上册数学第二单元 轴对称和平移 检测卷(无答案)
- 退休人员应聘合同范本
- 燃气施工安装合同范本
- 社区春季消防知识培训课件
- 建材维修安装合同范本
- 高中思想政治-人教版新教材必修1第四课第一框:中国特色社会主义进入新时代教学设计学情分析教材分析课后反思
- DB6105T 180-2022 大豆种子田间检验技术规程
- 惠州卫生职业技术学院辅导员考试题库
- 试用期转正审批表及考核表实用文档
- 2023年爱粮节粮知识竞赛试题
- 印尼劳动法中文版
- 内科大查房课件综合医院抑郁诊疗-包头
- 中式烹调师高级技师试题与答案
- GB/T 9573-2013橡胶和塑料软管及软管组合件软管尺寸和软管组合件长度测量方法
- GB/T 3622-1999钛及钛合金带、箔材
- 旅游相册:宁夏旅游课件
评论
0/150
提交评论