文档库 最新最全的文档下载
当前位置:文档库 › 基于MCU和CH375的并口转USB口驱动器的设计

基于MCU和CH375的并口转USB口驱动器的设计

基于MCU和CH375的并口转USB口驱动器的设计
基于MCU和CH375的并口转USB口驱动器的设计

https://www.wendangku.net/doc/076881800.html, 电子发烧友 https://www.wendangku.net/doc/076881800.html, 电子技术论坛
基于 MCU 和 CH375 的并口转 USB 口驱动器的设计
郑宽磊1,赵娟2,王典洪1,强伟锋3
(1.中国地质大学机械与电子工程学院 武汉 430074; 2.中国地质大学教学实验中心 武汉 430074 北京 100081) 3.北京普析通用仪器有限公司
【摘要】:为解决传统仪器只支持并口打印机的问题,提出了一种基于 CH375 的并口转 USB 口的驱动器的 设计,实现了并行数据到 USB 数据的转换,该驱动器可以方便地移植进智能仪器中,为仪器扩展 USB 接口,并 有望成为一种通用的并口转 USB 口驱动器。 关 键 词:USB 主机、CH375、设备枚举、控制传输 中图分类号:TP302.1 文献标识码:B
Design of LPT to USB Driver Based on MCU & CH375
ZHENG Kuanlei1, ZHAO Juan2, WANG Dianhong1, QIANG Weifeng3
(1.Faculty of Mechanical & Electronic Engineering, China University of Geosciences, Wuhan, 430074,China; 2.Teaching & Experiment Center, China University of Geosciences, Wuhan, 430074, China; 3.Beijing Purkinje General Instrument CO.LTD,Beijing,100081,China)
Abstract:To resolve the issue that many traditional instruments can’t support USB printer, a design of LPT to USB driver based on CH375 is put forward in this paper. The driver can convert parallel data to USB data and can be conveniently transplanted into the instruments, expanding easily USB interface for them. The driver will hopefully become a universal LPT to USB driver. Key words: USB HOST, CH375, Device Enumeration, Control transmission
0、引言
在现代工业控制和研究过程中,人们常常会使用到一些外设接口只有并口的仪器,单一的 老式并口外设决定了要打印仪器分析和测量的数据只能使用传统的并口打印机,同时数据只能 打印而无法通过 Flash 设备存储下来,为此给工业生产与研究也带来极大不便。与此同时传统 的并口打印机,由于其速度较慢,且拔插也不方便,因而逐渐被 USB 打印机所代替,USB 接口 具有即插即用、热插拔以及较高的传输速率,也逐渐成为 PC 机以及一些智能仪器与外设连接 的普遍标准。因此迫切需要设计一种并口转 USB 口的驱动器?以支持流行的 USB 打印机,基于 此设计开发了一款 USB 打印机驱动器的转接板来支持只有并口外设接口的分析仪器和 USB 打 印机的连接。 该驱动器的主要功能是:接收仪器的打印指令,并将指令转换为指定打印机的指令,使单 片机接收并口数据并发送数据给 USB 打印机达到控制 USB 打印机打印数据。 USB 打印机接口驱动器的设计由硬件部分和软件部分构成, 而硬件部分主要有四部分组成: 电源、MCU 控制器、USB 主控制器。其中:MCU 采用华邦电子生产的一款可在线升级的标准 8052 单片机 W78E516B,而 USB 主控芯片采用南京沁恒电子生产的一款 USB 总线通用接口芯 片 CH375。
1、USB 主控制器介绍
USB 主控制器 CH375 支持 USB HOST 主机方式和 DEVICE 设备方式。 在本地端, CH375 的 USB 主机方式支持并行接口和串行接口。在主机方式下,CH375 支持各种常用的 USB 全速设 备,外部单片机需要编写固件程序按照相应的 USB 协议与 USB 设备通讯。CH375 芯片在本地 端提供了通用的被动并行接口和点对点的串行接口。并口信号线包括:8 位双向数据总线 D7~ D0、读选通输入 RD#、写选通输入 WR#、片选输入 CS#、中断输出 INT#以及地址输入线 A0。 通过被动并行接口,CH375 芯片可以很方便地连接到 W78E516B 系统总线上。 CH375 芯片内部集成了 USB 接口 SIE、数据缓冲区、被动并行接口、串行接口、命令解释 器、控制传输的协议处理器、通用的固件程序等。USB 接口 SIE 是 USB 主机方式和 USB 设
?
基金项目:科技部“十五”国家科技攻关项目(2004BA210A06) 《分析仪器产业化应用示范》

https://www.wendangku.net/doc/076881800.html, 电子发烧友 https://www.wendangku.net/doc/076881800.html, 电子技术论坛
备方式的一体式 SIE, 用于完成物理的 USB 数据接收和发送, 自动处理位跟踪和同步、 NRZI 编 码和解码、位填充、并行数据与串行数据之间的转换、CRC 校验、事务握手等。数据缓冲区用 于缓冲 USB 接口 SIE 收发的数据。被动并行接口用于与外部单片机交换数据。串行接口用于 代替被动并行接口与外部单片机交换数据。命令解释器用于分析并执行外部单片机提交的各种 命令。控制传输的协议处理器用于自动处理常用的控制传输的多个阶段,简化外部固件。 CH375 与单片机的连接框图如图 1 所示:
ISP 计算机 CTRL 或 单片机 仪器 D[7-0] DSP 等 并口 BUSY D [7-0] INT# CS# A0 RD# WR# USB 主控制 器 D+ D- U 盘等 USB 打印机
图 1. 系统原理框图
2、系统硬件设计
系统硬件部分最重要的两部分单片机控制部分、USB 主控制器部分,电源部分较为简单, 可以采用开关电源、电源适配器直接得到+5V 直流电压,出于操作方便以及设计简单考虑,我 们使用了性能良好的电源适配器,其优点是体积小,交流输入电压 100~240V,适用面广,其直 流输出电压稳定,一般为 5.1V,完全能满足该驱动器的设计要求。 CPU USB主控芯片
VCC U1 8 VCC SO 7 R1 10k 3 4 RESET SI WP SCK VSS CS X25045 REST U2 2 5 6 1 X_SO X_SI X_SCK X_CS ERROR BUSY ISP RES_375 CTRL INT0 PE DIR VCC Y1 C12 30P 24M C11 30P X1 X2 2 3 4 5 6 7 8 9 15 14 17 16 35 21 20 P10 P11 P12 P13 P14 P15 P16 P17 /INT1 /INT0 T1 T0 EA/VP X1 X2 RESET RD WR RXD TXD ALE/P /PSEN 11 13 33 32 P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 43 42 41 40 39 38 37 36
D0 D1 D2 D3 D4 D5 D6 D7
U3 15 16 17 18 19 20 21 22
CH_A0 8 RD 4 WR 3 CH_CS 27 INT0 1
VCC VCC V3 TXD GND GND VDVD+ RSTI X0 28 9 5 12 23 11 10 C7 VCC 2 RES_375 103 14 Y2 13 C10 30P 24M C9 30P D3 C6 103
R2 3R3 C8
D0 D1 D2 D3 D4 D5 D6 D7 A0 RD WR CS INT RST RST
D1 D2 10uF/16V CN1 R3 3R3 DD+ R4 3R3 D4 1 2 3 4 USB
24 25 26 27 28 29 CH_A0 30 CH_CS 31 PR_CS
25 26
X1
REST 10 RD WR 19 18
D0~D7 通过245 驱动
并口
W78E516BP-40
图 2 系统硬件电路图
系统设计引入看门狗定时复位芯片 X5045,主要完成上电复位控制、看门狗定时器及降压 管理功能。单片机 W78E516B 是具有带 ISP 功能的 Flash EPROM 的低功耗 8 位微控制器;ISP 功能可用于固件升级, 连到并口一脚由上位机程序和 W78E516B 的 4K LDROM 中的 ISP 程 ISP 序共同完成单片机的 64K APROM。 CH375 芯片的 RD#和 WR#可以分别连接到单片机的读选通 输出引脚和写选通输出引脚。CS#可以直接连到 P2 口的除 P2.0 外的任一脚。INT#连接到单片 机的中断输入引脚,低电平有效。当 CS#和 RD#以及 A0 都为低电平时,CH375 中的数据通过 D7~D0 输出; CS#和 WR#以及 A0 都为低电平时, 当 D7~D0 上的数据被写入 CH375 芯片中; 当 CS#和 WR#都为低电平而 A0 为高电平时,D7~D0 上的数据被作为命令码写入 CH375 芯片 中。其他 IO 口,如 BUSY 信号连接到仪器的打印并口,CH375 主要配合单片机完成 USB 传输 协议的解释, 识别 USB 外设, 完成对 USB 打印机枚举, 同时接收单片机发来的数据发送给 USB 打印机;而单片机主要协助 CH375 完成 USB 传输协议的解释,实现并口与 USB 口之间的数据 通信,一方面接收仪器通过并口发送来的数据,另一方面通过与 CH375 通信完成 USB 打印机 的枚举后发送数据到 USB 打印机。
3、系统软件设计
单片机与 CH375 的通信主要靠单片机给 CH375 发命令和数据来完成的,而 CH375 给出了

https://www.wendangku.net/doc/076881800.html, 电子发烧友 https://www.wendangku.net/doc/076881800.html, 电子技术论坛
许多常用命令以及操作状态的代码,比如:从 USB 中断的端点缓冲区读取数据块命令 CMD_RD_USB_DATA , 向 USB 主 机 端 点 的 发 送 缓 冲 区 写 入 数 据 块 命 令 CMD_WR_US B_DATA7 等,这样就可以将这些命令做成函数,通过函数实现该命令,在编写其他函数时就可 以直接调用这些命令函数。单片控制主程序主要三部分组成:第一、初始化看门狗、单片机及 CH375;第二、复位 USB 打印机,完成打印机枚举;第三、发送数据给打印机。系统主程序流 程图如图 3 所示:
图 3 系统软件主程序流程图
图 4 USB 打印机枚举初始化流程图
打印机驱动器上电,程序开始执行,首先对硬件进行初始化,硬件初始化包括单片机的看 门狗初始化,调用函数 watchdog_init()设置喂狗参数来实现,以及单片机 IO 口的初始化;然后 对 CH375 进行复位,使用命令函数 set_usb_mode(6)设置 CH375 主机工作方式。接下来,系 统开始对打印机进行初始化,完成任何一个 USB 设备插入主机接口后必须经过的枚举过程。 3.1 USB 打印机的枚举初始化过程 (1)主机检测设备,发出复位。通过 CH375 提供的 USB 主机操作状态代码 USB_INT_CO NNECT 检测是否有 USB 设备连接事件,一旦检测到,主机等待 400ms 后,使插入操作完成并 使设备电源稳定工作,并获得该打印机是全速设备还是低速设备,并向 USB 信号线的 D+和 D输出低电平,复位 USB 打印机。 (2)设备默认状态。集线器向端口持续 10ms 的复位信号,复位信号撤销,打印机设备处在 默认状态,设备寄存器及状态已被复位,设备可以使用默认地址 00H 产生响应。 (3)地址分配。当主机接收到有设备对默认地址 00H 进行响应的时候,主机给设备分配一个 唯一的地址,以后设备只对该地址进行响应。 (4)读取设备描述符。主机读取 USB 打印机的设备描述符,确认 USB 设备的属性。主要通 过 CH375 提供的命令代码 CMD_GET_DESCR 获取描述符。一旦数据传输完成后,将获取的描 述符数据从 CH375 中读出到单片机的 RAM 缓冲区中,并返回描述符长度。然后使用命令代码 CMD_SET_ADDRESS 和 CMD_SET_USB_ADDR 分别对 USB 设备端和主机端设置地址。 (5)读取完整的配置描述符,配置 USB 设备。一旦地址设置完成,CH375 就开始获取完整 的配置描述符,完整的配置信息包括配置、接口、接口、端点和设备类及厂商定义的描述符, 在打印机设备返回给 CH375 的配置描述符的总长不超过 64 字节时,我们同样可以直接使用 CMD_GET_DESCR 命令来获取配置描述符,但长度一旦超过 64 字节,就需要外部单片机通过 ISSUE_TOKEN 命令自行处理控制传输。该命令使 CH375 发出令牌,执行事务。

https://www.wendangku.net/doc/076881800.html, 电子发烧友 https://www.wendangku.net/doc/076881800.html, 电子技术论坛
控制传输的建立阶段:设置主机端点的发送器的同步触发标志为 0,发送 DATA0,将 8 个 字节的请求数据写入输出缓冲区, 发出 ISSUE_TOKEN 命令执行事务, 向默认端点 0 发出 SETUP 令牌。如果事务执行成功,则控制传输的建立阶段完成。 数据阶段: 设置主机端点的接收器的同步触发标志为 1, 接收 DATA1, 执行 ISSUE_TO- KEN 命令向默认端点 0 发出 IN 令牌, 然后从 CH375 的端点缓冲区读取描述符, 读出到单片机的 RAM 缓冲区中, 读出的最前 8 个字节的数据判断实际描述符的字节数, 如小于 64 字节可以一次读完, 大与 64 字节则多次读取。 状态阶段:设置主机端点的发送器的同步触发标志为 1,发送 DATA1,将 0 长度的状态数 据写入输出缓冲区,执行 ISSUE_TOKEN 命令,向默认端点 0 发出 OUT 令牌。单片机在等待 事务完成,获取中断状态,并分析中断状态,如事务执行成功,则状态阶段完成。 至此,完整的设备描述符的控制传输完成,主机读取描述符并分析该设备的端点、接口以 及其他配置信息,主机使用 CH375 提供的命令代码 CMD_SET_CONFIG 给设备确定一个配置 值,设备就完全处于设置完成状态。从设备的角度来讲,打印机已经准备就绪,枚举过程完成。 最后就是发送数据了,一旦 CTRL 信号置低,单片机立即响应仪器中断接收数据,并发送 到 CH375 的数据缓冲区,然后再由 ISSUE_TOKEN 命令请求 CH375 将接收到的数据逐字节发 送给 USB 打印机的接收端点。 自此,软件设计路程完成,以下是 CH375 读取 USB 打印机配置描述符的源程序: unsigned char get_full_descr(unsigned char *cBuffer) {unsigned char code Descr_Buf[8] = {0x80, 0x06, 0x00, 0x02, 0x00, 0x00, 0xff, 0x00}; unsigned char ss, *pBuf = cBuffer; unsigned int len, nLen = 0xFFFF; tog_send = 0; tog_recv = 0; //控制传输的建立阶段 toggle_send(tog_send); /*0 写入读描述的命令字*/ wr_usb_data(8, Descr_Buf); /*8 个字节的请求数据写入输出缓冲区*/ ss = issue_token(0x0D); /*向默认端点 0 发出 SETUP 令牌*/ //控制传输的数据阶段 if (ss == USB_INT_SUCCESS) //正常 { while(1) { tog_recv = !tog_recv; //切换接收 toggle_recv(tog_recv); //1 ss = issue_token(0x09); /*主机端点接收*/ if(ss == USB_INT_SUCCESS) { len = rd_usb_data(pBuf); if(nLen == 0xFFFF) /*读出的最前 8 个字节的数据*/ { nLen=pBuf[3]*0x100 + pBuf[2]; //配置描述符返回的整个数据长度 if(nLen > 64) nLen = 64; } if(nLen <= 8) break; /*已经将最后的 8 个数据读出*/ nLen -= len; /*减去上一次读出的数个数*/ pBuf += len; if(nLen == 0) break; tog_send = !tog_send; //切换发送 toggle_send(tog_send); //1 } else break; } } //控制传输的状态阶段 toggle_send(1); //最后必须为 1

https://www.wendangku.net/doc/076881800.html, 电子发烧友 https://www.wendangku.net/doc/076881800.html, 电子技术论坛
wr_usb_data(0, Descr_Buf); /*结束,发送 0 个字节的数据*/ issue_token(0x01); //控制传输完成 return(USB_INT_SUCCESS) ; }
4、结论
本文作者创新点:首次提出并使用国产 USB 主控芯片 CH375 实现了并口到 USB 接口的转 换,为传统分析仪器轻松简单的扩展了 USB 接口,使得仪器通过该驱动器可以直接支持 USB 打印机外设。项目所验证的几款惠普 PCL 语言的打印机中,如 HP5748、5652、1022、HP7268 和 7458,这五款打印机均能正常完成仪器并口发送数据给 USB 打印机打印。 此外, 考虑到 CH375 内置了处理 Mass-Storage 海量存储设备的专用通讯协议的固件, 只需 对枚举初始化程序稍加改动,即可方便的支持 U 盘读写,存储仪器的试验数据。同时,配合上 位机驱动程序的开发,该并口转 USB 口的驱动器有望成为一种通用的并口转 USB 口转接器。 参考文献: [1] 杨锐,赵剡. ARM 系统设计及其 USB 主机扩展方案[J].微计算机信息.2005.3.[P12-13] [2] 杨金岩,郑应强,张振仁.8051 单片机数据传输接口扩展技术与应用实例[M].北京:人民 邮电出版社,2005:[64~92] [3] 周立功等.PDIUSBD12USB 固件编程与驱动开发[M].北京:北京航空航天大学出版社,2002 [4] 张弘.USB 接口设计[M].西安:西安电子科技大学出版社,2002:[50~67] 作者简介: 郑宽磊,男,1981年11月出生,中国地质大学(武汉)机电学院通信与信息系统专业硕士研究生, 主要从事ARM嵌入式系统研究和开发,USB系统接口设计与研究等领域。 赵 娟,女,1979年8月出生,中国地质大学(武汉)教学实验中心,主要从事USB接口设计研究。 王典洪,男,1957年9月出生,中国地质大学机电学院院长,教授,博导,主要从事计算机图像 处理与图像通信,智能控制与智能仪器等领域的研究。 强伟锋,男,1978 年 8 月出生,北京普析通用仪器有限公司,高级工程师,主要从事 USB 接 口设计,嵌入式系统设计开发。
文 章:基于
MCU 和 CH375 的并口转 USB 口驱动器的设计
姓 名:郑 宽 磊 邮政编码:430074 通信地址:武汉市中国地质大学研究生院硕 1200318 班 E-mail:zhengkuanlei@https://www.wendangku.net/doc/076881800.html, 中图分类号:TP302.1 文献标识码:B 基金资助:科技部“十五”国家科技攻关项目(2004BA210A06) 《分析
仪器产业化应用示范》

中国32位嵌入式CPU芯片

2015-2020年中国32位嵌入式CPU芯片行业市场调研及未来发展分析报告 Special Statenent特别声明 本报告由华经视点独家撰写并出版发行,报告版权归华经视点所有。本报告是华经视点专家、分析师调研、统计、分析整理而得,具有独立自主知识产权,报告仅为有偿提供给购买报告的客户使用。未经授权,任何网站或媒体不得转载或引用本报告内容,华经视点有权依法追究其法律责任。如需订阅研究报告,请直接联系本网站客服人员(8610-56188812 56188813),以便获得全程优质完善服务。 华经视点是中国拥有研究人员数量最多,规模最大,综合实力最强的研究咨询机构(欢迎客户上门考察),公司长期跟踪各大行业最新动态、资讯,并且每日发表独家观点。 目前华经视点业务范围主要覆盖市场研究报告、投资咨询报告、行业研究报告、市场预测报告、市场调查报告、征信报告、项目可行性研究报告、商业计划书、IPO上市咨询等领域,同时也为个阶层人士提供论文、报告等指导服务,是一家多层次、多维度的综合性信息研究咨询服务机构。 Report Description报告描述 本研究报告由华经视点公司领衔撰写。报告以行业为研究对象,基于行业的现状,行业运行数据,行业供需,行业竞争格局,重点企业经营分析,行业产业链进行分析,对市场的发展状况、供需状况、竞争格局、赢利水平、发展趋势等进行了分析,预测行业的发展前景和投资价值。在周密的市场调研基础上,通过最深入的数据挖掘,从多个角度去评估企业市场地位,准确挖掘企业的成长性,为企业提供新的投资机会和可借鉴的操作模式,对欲在行业从事资本运作的经济实体等单位准确了解目前行业发展动态,把握企业定位和发展方向有重要参考价值。报告还对下游行业的发展进行了探讨,是企业、投资部门、研究机构准确了解目前中国市场发展动态,把握行业发展方向,为企业经营决策提供重要参考的依据。 Report Directory报告目录 第一章研究范围界定及市场特征分析 第一节CPU芯片分类及应用 一、CPU芯片分类 二、CPU芯片应用

32位MIPS处理器设计实验报告

数字逻辑与处理器基础实验 32位MIPS处理器设计实验报告 王晗 (2013011076) July26,2015 Date Performed:July15,2015 Partners:耿天毅(2012011119) 陈志杰withdrawn 1实验目的 熟悉现代处理器的基本工作原理;掌握单周期和流水线处理器的设计方法。 2设计方案 2.1总体结构 由于这次实验涉及的功能较多,我们将完整的CPU分成多个模块。指令存储器、寄存器堆、控制器、ALU控制器、ALU、数据存储器、UART等功能单元均在单独的Module中实现。其中指令存储器、寄存器堆、控制器、ALU控制器、ALU等单元在Single Cycle Core中实例化,作为单周期处理器的核心;数据存储器、UART和定时器、LED、七段数码管、开关在Peripheral中实现,作为处理器的外设。处理器核心和外设在顶层模块中实例化,互相通信。 单周期CPU模块的结构关系如Figure1所示:

Figure1:单周期处理器结构 对于流水线CPU,我们还在Pipeline Core中加入了流水线寄存器、冒险检测单元、数据转发单元: Figure2:流水线处理器结构

2.2ALU1 ALU模块的结构如图所示,输入两个操作数A、B和控制信号ALUFun、Signed,在ARITH子模块中做加减法运算,CMP子模块根据ARITH模块的输出进行比较判断,LOGIC和SHIFT模块分别进行逻辑运算和移位运算,ALUFun的最高两位用于控制多路选择器的输出。 Figure3:ALU结构 ARITH模块ARITH模块中包括减法和加法两个模块,加法模块直接通过+号运算,减法模块先对第二个操作数取补码,再调用加法模块做加法运算。Overflow和Negative信号的产生是ALU中的难点: Figure4:ADD中的Overflow和Negative 1原作者:陈志杰;修改:王晗

32位MIPS处理器说明

32位MIPS处理器说明

一、实验目的 熟悉现代处理器的基本工作原理;掌握单周期和流水线处理器的设计方法。 二、实验原理及实验内容 该32位MIPS处理器主要需要设计ALU、单周期、流水线。下面分别讲述这三个部分的设计原理及实验内容。 1.ALU ALU即算数逻辑单元,要求设计一个32位的ALU,实现基本的算术、逻辑、关系、位与移位运算。输入32bit的A和B作为操作数,5bit的控制输入ALUFun和一位控制输入Sign,输出32bit的结果Z。其功能表如下图所示:

根据功能表和要求,我们在顶层模块中设计了32bit输入ALUSrc1和ALUSrc2,以及5bit控制ALUFunc,1bit控制Sign,32bit输出ALUOut。设计了四个主要模块:ALU_ADD_SUB,ALU_CMP,ALU_Logic,ALU_Shift,并根据ALUFunc的值来确定使用的模块。设计框图思路如下: (1)ALU_ADD_SUB 这部分是ALU设计中最重要的一部分。采用了8位超前进位级联,用与门来实现32位全加器。减法由加法实现,在运算的开始由ALUFunc判断进行的是加法还是减法,如果是加法则直接将两个操作数输入全加器,最低进位为0,如果是减法则取ALUSrc2的反码之后再做加法运算,最低进位是1。 需要注意的是运算结束之后需要判断结果是否为0(这个在branch指令中尤为重要),是否为负数,还有是否溢出。是否为溢出还需要检查控制符号,如果控制符号为有效(即有符号计算)则两正数相加得负或两负数相加得正则溢出,溢出则结果符号位反了,再进而判断是否为负。若为无符号运算,加法结

32位RISC处理器软核的设计与验证

32位RISC 处理器软核的设计与验证( Potato-I) 使用说明文档 1 CPU 流水线级数及各级功能 IF :取指令级,是从ROM 中读取指令,并在下一个时钟沿到来时把指令送到ID 级的指令缓冲器中。 ID :指令译码级,对IF 级来的指令进行译码,并产生相应的控制信号。整个CPU 的控制信号都是在这级上产生。 EX :执行级,对操作数进行算术或逻辑操作,此外LOAD ,STORE 指令所用的RAM 访问地址也是在EX 级上实现。 MEM :存储器访问级,只有在执行LOAD 、STORE 指令时对存储器进行读写,但对其他指令只起到缓冲一个周期的作用。 WB :回写级,把指令执行的结果回写到寄存器文件中,写入寄存器文件的数据来自于MEM 级上的缓冲值或来自于MEM 级上的存储器。 2指令集及编码格式 2.1指令集: NOP,ADD,ADC,SUB,SUBC,AND,OR,NOT,ADDI,ANDI,ORI,NOTI,LSL,LSR,ASR,ROR,ROL,STR,LDR,BTC,JUMP,JUMPR,JUMPL,RET 。 2.2指令编码格式 例:ADD R1,R2,R3; 在上面的加法指令中 OP=2、DS=1、S1=2 、S2=3,对应的机器码为: 32’b000010_00001_00010_00011_XXXXXXXXXXX; 2) ADDI,ANDI,ORI,NOTI 例:ADDI R4,R8,5; 其中 OP=1、DS=4、S1=8、IMM=5,对应的机器码为: 32’b000001_00100_01000_0000000000000101; 3) LSL,LSR,ASR,ROR,ROL

32位cpu设计报告

CPU 设 计 报 告 姓名: 学号: 学院:信息科学与工程学院指导老师:

2013-01-12 一、设计目的 (1)学习设计CPU的基本步骤和方法,提高应用集成电路的基本技能,培养和提高独立设计计算机的工作能力。 (2)熟悉32位CPU各模块的工作原理,熟悉流水线数据通路和控制单元的工作原理从而熟悉CPU的工作机理。 (3)熟练地使用Quartus软件,做一些中等难度的课题,增加自己的一些实践经验,熟练VHDL编程。 (4)强化自身的系统设计能力,了解系统设计中的一般步骤。了解VHDL仿真和综合工具的潜力。 二、实验方法 实验要完成的工作主要包括:指令系统的设计,FPGA-CPU的整体结构设计及其细化,逻辑设计的具体实现(VHDL语言编写),软件模拟,以及硬件调试。这几部分的工作之间是先行后续的关系,也就是只有前一个步骤完成了下一个步骤才可以开始进行,不存在并行完成的情况。实验主要流程如下图所示: 指令系统设计逻辑设计 具体实现 软件模拟 硬件调试 设计FPGA-CPU的指令集。我们采用了流水线数据通路与控制单元的精简指令集计算机 分析并确定CPU主要功能模块,分析每条指令的执行过程,数据的流向和控制信号的产生,画出逻辑结构图 按模块分别实现,然后进行综合,建波形文件进行仿真 整体模拟仿真,检查时序关系配 合是否正确 下载到实验板中进行调试

三、数据格式 数据字长是32位,采用32位二进制有符号补码表示。 四、寻址方式 RSCI的四种寻址模式分别是寄存器寻址,存器间接寻址,立即寻址,相对寻址。这些寻址模式都是由操作码而不是单独的模式字段指定的。因此,对于某种给定操作来说,它的寻址模式是固定的,不能变动。三操作数数据处理指令采用寄存器寻址模式。寄存器间接寻址仅仅用于load和store这两个唯一能够访问数据存储器的指令。采用两寄存器格式的指令使用一个立即数取代寄存器地址SB。相对寻址专门用于分支和跳转指令,其产生的地址只用于指令存储器。 五、数据通路结构 下图中的流水线数据通路是我们即将设计的数据通路的基础,我们只需要做一些改进。这些改进涉及寄存器文件、功能单元和总线结构。

32位嵌入式微处理器一览

作者:杨硕 由于嵌入式系统的专用型与定制性,与全球PC市场不同,没有一种微处理器或者微处理器公司可以主导嵌入式系统。本文分析了当前市场上主流的一些32位嵌入式微处理器的特点和应用场合,并对其未来发展做一些展望。这里只是按照体系结构分类,不涉及具体的处理器芯片。 一. ARM ARM处理器是由英国的ARM公司设计的32位RISC处理器。 毫无疑问,ARM芯片是嵌入式微处理器中的佼佼者,是很多数字电子产品的核心。如今95%的手机里面的核心处理器使用的都是ARM芯片,而ARM在整个手持市场上占有90%以上的份额,这是一个惊人的比例。 ARM公司的商业模式: ARM公司的成功除了其卓越的芯片设计技术以外,还源于其创新的商业模式:提供技术许可的知识产权,而不是制造和销售实际的半导体芯片。ARM将其芯片设计技术(内核、体系扩展、微处理器和系统芯片方案)授权给Intel,Samsung,TI,高通(Qualcomm),意法半导体等半导体制造商,这些厂商拿到ARM内核以后,再设计外围的各种控制器,和ARM核整合成一块SOC芯片,也就是我们看到的市面上的各种芯片,作为用户,我们也许不知道我们使用的是ARM芯片,但是我们可能天天都在感受着ARM芯片带给我们的智能体验。 图1-1 ARM的业务模型

ARM公司正是因为没有自己生产芯片,从而省去了IC制造的巨额成本,因此可 以专注于处理器内核设计本身,ARM处理器内核不但性能卓越而且升级速度很快,以适应市场的变化。 由于所有的ARM芯片都采用一个通用的处理器架构,所以相同的软件可以在所有产品中运行,这正是ARM最大的优势,采用ARM芯片无疑可以有效缩短应用程序开发的与测试的时间,也降低了研发费用。 ARM生态产业链: ARM公司通过出售芯片技术授权,建立起新型的微处理器设计、生产和销售商业模式。围绕着芯片设计产业,ARM公司整合了上下游的资源,逐渐形成了一条完整的生态产业链。ARM的合作伙伴包括半导体制造商,开发工具商,应用软件设计商以及培训商等。ARM公司统一了芯片设计的标准,芯片制造商生产的芯片符合统一的接口,为以后的开发提供了很大的方便;工具商专门开发基于ARM芯片的仿真器和开发工具;应用软件设计商开发基于ARM芯片的应用程序,培训商则提供与ARM相关的培训服务。 这样的一套完整的产业链使得ARM芯片的开放性和通用性都很好,很多公司开发嵌入式产品都倾向于选择ARM的芯片,因为软硬件开发都有比较成熟的方案,相关的人才也比较多,可以缩短开发的周期,使得产品能够尽快上市。而作为个人如果想学习嵌入式开发,ARM芯片也是首选的学习对象,相关的学习资料和开发工具都有很多。 目前全球已有超过700家的软硬件系统公司加入了ARM Connected Community,其中中国本土公司的成长很快,目前已经有超过70家加入了ARM生态伙伴系统。 下图为以ARM公司为核心的生态产业链,这个产业链还在不断壮大: 图1-2 以ARM为核心的生态系统

32位操作系统

操作系统是硬件和应用软件中间的一个平台。 32位操作系统针对32位的CPU设计。 64位操作系统针对64位的CPU设计。 CPU从原来的8位,16位,到现在的32位和64位。 cpu处理计算的时候“数据”和“指令”是不同对待的。 8位CPU 8位的CPU,一次只能处理一个8位的“数据”或者一个8位的"指令"。比如'00001101'. 又比如:“+1”这个运算,你要先指示CPU做“+”,完成后再输 入“1”数据给CPU。 8位的CPU优点是设计简单,处理速度比较快。 缺点就是:软件设计复杂,繁琐。不利于计算机的发展。 16位CPU 后来推出了16位的CPU,我们就可以一次处理两个字节(16位)的数据了,比如“加1”这个命令。“加”是一个指令,占用8个位,余下的8位我们可以存放数据“1”了。 32位CPU 32位的CPU就更加方便了,我们就可以一次处理一个a=a+b这样的命令了。 优点:简化了软件设计的复杂度 缺点:硬件设计更加复杂,计算速度下降。 一般来讲32位的CPU对于我们来讲是最理性的CPU,对于软件开发来讲足够了。 但是2的32次方 = 4294967296bit = 4G左右

很显然32位CPU只有4G左右的内存寻址空间,对于一些服务器来讲4G的内存的远远不够的了。我们需要更加大的内存寻址空间的话就需要对CPU进升级。64位CPU就这样诞生了。64位CPU的内存寻址空间是多少你算算看!呵呵。 2的64次方(理论上)。 64位CPU 但是现在的AMD和Inter的64位CPU并不是真正意义上的64CPU,只是进行了部分64位的改进,比如64位的内存寻址等。 要是真的全部都是64位的了,那么现在市场上的软件将全部被淘汰不能使用了~呵呵,想像一下会是什么样子。 64位的操作系统针对64位CPU设计的,增加了一些64位的指令,但还是和32兼容的。对于我们普通用户来讲64位系统意义不大。

相关文档