刚开始搞单片机开发简单问题--PC和单片机通信问题

1982pc 2004-12-06 08:55:08
本人大学还未毕业,现在在一家公司搞单片机开发负责用PC向单片机发出控制消息模块。刚开始接触,请大家多多帮忙啊!
本人现在需要用TCP/IP协议用来PC和单片机通信,是不是得在ARM里嵌入TCP/IP协议?如果是,哪里有TCP/IP协议软件包可以下?
本人曾经用TCP/IP协议用socket开发过PC和PC通信的程序,单片机开发能不能用socket,有没有类似的api函数?
问题很多,分数不多大家帮帮忙。如果有这方面的书也给介绍几本。
...全文
118 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
1982pc 2004-12-07
  • 打赏
  • 举报
回复
谢谢大家了!
1982pc 2004-12-06
  • 打赏
  • 举报
回复
是ARM,那也就是说只要移植了UCLinux就可以像PC上一样的编程实现了?!本人学软件出身的,实在是对这些东西懂的不多,希望大家不吝赐教!
flowercity 2004-12-06
  • 打赏
  • 举报
回复
不能用RS232?
icesnows 2004-12-06
  • 打赏
  • 举报
回复
对,你现在用的什么单片机?
mudfish 2004-12-06
  • 打赏
  • 举报
回复
到底是单片机还是ARM?如果是ARM,你移植一个UCLinux上去,里面自己就带了TCP/IP协议栈.如果是
一般的51单片机,呵呵,你还是自己做电路,写代码吧.或者用现成的模块,大约200左右.
ppcust 2004-12-06
  • 打赏
  • 举报
回复
你用的单片机是什么型号啊。。。。

能不能有嵌入式操作系统 ?
icesnows 2004-12-06
  • 打赏
  • 举报
回复
对啊,没错
马潮老师编写的avr教材。 书中以m16为例举了实际应用的例子。 很不错。 书中片断 2.2 ATmega16单片机的组成 ATMEL公司的AVR单片机是一种基于增强RISC结构的、低功耗、CMOS技术、8位微控制器(Enhanced RISC Microcontroller),目前有Tiny、Mega两个系列50多种型号。它们的功能和外部的引脚各有不同,小到8-12个引脚,多到100个引脚,但它们内核的基本结构是一样的,指令系统相容。本书将以性能适中的ATmega16为主线,介绍和讲述AVR单片机的组成,以及如何应用在嵌入式系统中。在正式的产品开发与设计时,设计者可根据系统的实际需要选择合适型号的AVR单片机。 2.2.1 AV R单片机的内核结构 图 2-2 AVR单片机的内核结构示意图 华东师范大学 电子科学技术系 马潮 2-4 基于 AVR 的单片嵌入式系统原理与实践应用 尽管AVR单片机系列有几十种的型号,但它们有着相同的内核结构,指令兼容。图2-2为典型的AVR单片机的内核结构图。 为了提高MCU并行处理的运行效率,AVR单片机采用了程序存储器和数据存储器使用不同的存储空间和存取总线的Harvard结构。算术逻辑单元(ALU)使用单级流水线操作方式对程序存储器进行访问,在执行当前一条指令的同时,也完成了从程序存储器中取出下一条将要执行指令的操作,因此执行一条指令仅需要一个时钟周期。 在AVR的内核中,由32个访问操作只需要一个时钟周期的8位通用工作寄存器组成了“快速访问寄存器组”。“快速访问”意味着在一个时钟周期内执行一个完整的ALU操作。这个ALU操作中包含三个过程:从寄存器组中取出两个操作数,操作数被执行,将执行结果写回目的寄存器中。这三个过程是在一个时钟周期内完成的,构成一个完整的ALU操作。 在32个通用工作寄存器中,有6个寄存器可以合并成为3个16位的,用于对数据存储器空间进行间接寻址的间接地址寄存器(存放地址指针),以实现高效的地址计算。这3个16位的间接地址寄存器称为:X寄存器,Y寄存器和Z寄存器。其中Z寄存器还能作为间接寻址程序存储器空间的地址寄存器,用于在Flash程序存储器空间进行查表等操作。 AVR的算术逻辑单元(ALU)支持寄存器之间,立即数与寄存器之间的算术与逻辑运算功能,以及单一寄存器操作。每一次运算操作的结果将影响和改变状态寄存器(SREG)的值。 使用条件转移、无条件转移和调用指令,可以直接访问全部Flash程序存储器空间以及控制程序的执行顺序。大部分AVR指令为单一16位格式,只有少数指令为32位格式。因此,AVR的程序存储器单元为16位,即每个程序地址(两字节地址)单元存放一条单一的16位指令字。而一条32位的指令字,则要占据2个程序存储器单元。 ATmega16单片机的Flash程序存储器空间可以分成两段:引导程序段(Boot program section)和应用程序段(Application program section)。两个段的读写保护可以分别通过设置对应的锁定位(Lock bits)来实现。在引导程序段内驻留的引导程序中,可以使用SPM指令,实现对应用程序段的写操作(实现在应用自编程IAP功能,使系统能够自己更新系统程序)。 在响应中断服务和子程序调用过程时,程序计数器PC中的返回地址将被存储于堆栈之中。堆栈空间将占用数据存储器(SRAM)中一段连续的地址。因此,堆栈空间的大小仅受到系统总的数据存储器(SRAM)的大小以及系统程序对SRAM的使用量的限制。用户程序应在系统上电复位后,对一个16位的堆栈指针寄存器SP进行初始化设置(或在子程序和中断程序被执行之前)。 在AVR中,所有的存储器空间都是线性的。数据存储器(SRAM)可以通过5种不同的寻址方式进行访问。 AVR的中断控制由I/O寄存器空间的中断控制寄存器和状态寄存器中的全局中断允许位组成。每个中断都分别对应一个中断向量(中断入口地址)。所有的中断向量构成了中断向量表,该中断向量表位于Flash程序存储器空间的最前面。中断的中断向量地址越小,其中断的优先级越高。 I/O空间为连续的64个I/O寄存器空间,它们分别对应MCU各个外围功能的控制和数据寄存器地址,如控制寄存器、定时器/计数器、A/D转换器及其他的I/O功能等。I/O寄存器空间可使用I/O寄存器访问指令直接访问,也可将其映射为通用工作寄存器组后的数据存储器空间,使用数据存储器访问指令进行操作。I/O寄存器空间在数据存储器空间的映射地址为 $020~$05F。 AVR单片机的性能非常强大,所以它的内部结构相对8031结构的单片机要复杂。对于开始接触和学习单片机的人员,以及了解8051结构单片机的人来讲,在这里尽管不会马上理解AVR内核的全部特点,但通过以后的逐步学习,应逐渐深入的体会和掌握它的原理, 华东师范大学 电子科学技术系 马潮 2-5 第 2 章 AVR 单片机的基本结构 这对于熟练的应用AVR设计开发产品,以及将来学习使用更新的单片机都会有很大的帮助。技术是在不断的发展的。 2.2.2 典型 AVR芯片ATmega16特点 AVR系列单片机中比较典型的芯片是ATmega16。这款芯片具备了AVR系列单片机的主要的特点和功能,不仅适合应用于产品设计,同时也方便初学入门。其主要特点有: (1)采用先进RISC结构的AVR内核 131条机器指令,且大多数指令的执行时间为单个系统时钟周期; 32个8位通用工作寄存器; 工作在16MHz时具有16MIPS的性能。 配备只需要2个时钟周期的硬件乘法器 (2)片内含有较大容量的非易失性的程序和数据存储器 16K字节在线可编程(ISP)Flash程序存储器(擦除次数>1万次),采用Boot Load技术支持IAP功能; 1K字节的片内SRAM数据存储器,可实现3级锁定的程序加密; 512个字节片内在线可编程EEPROM数据存储器(寿命>10万次); (3)片内含JTAG接口 支持符合JTAG标准的边界扫描功能用于芯片检测; 支持扩展的片内在线调试功能 可通过JTAG口对片内的Flash、EEPROM、配置熔丝位和锁定加密位实施下载编程; (4)外围接口 2个带有分别独立、可设置预分频器的8位定时器/计数器; 1个带有可设置预分频器、具有比较、捕捉功能的16位定时器/计数器; 片内含独立振荡器的实时时钟RTC; 4路PWM通道; 8路10位ADC 面向字节的两线接口TWI(兼容I2C硬件接口); 1个可编程的增强型全双工的,支持同步/异步通信的串行接口USART; 1个可工作于主机/从机模式的SPI串行接口(支持ISP程序下载); 片内模拟比较器; 内含可编程的,具有独立片内振荡器的看门狗定时器WDT; (5)其它的特点 片内含上电复位电路以及可编程的掉电检测复位电路BOD; 片内含有1M/2M/4M/8M,经过标定的、可校正的RC振荡器,可作为系统时钟使用; 多达21个各种类型的内外部中断源; 有6种休眠模式支持省电方式工作; (6)宽电压、高速度、低功耗 工作电压范围宽:ATmega16L 2.7—5.5v,ATmega16 4.5—5.5v; 运行速度:ATmega16L 0—8M,ATmega16 0—16M; 低功耗:ATmega16L工作在1MHz、3v、25度时的典型功耗为,正常工作模式 1.1mA,空闲工作模式 0.35mA,掉电工作模式 <1uA; (7)芯片引脚和封装形式 ATmega16共有32个可编程的I/O口(脚),芯片封装形式有40引脚的PDIP、44引脚的TQFP和44引脚的MLF封装。 华东师范大学 电子科学技术系 马潮 2-6 基于 AVR 的单片嵌入式系统原理与实践应用 2.2.3 外部引 脚与封装 ATmega16单片机有三种形式的封装:40脚双列直插PDIP、44脚方形的TQFP和MLF形式(贴片形式)。其外部引脚封装如图2-3所示。 图2-3 ATmage16 外部引脚与封装示意图 其中,各个引脚的功能如下: (1)电源、系统晶振、芯片复位引脚 Vcc: 芯片供电(片内数字电路电源)输入引脚,使用时连接到电源正极。 AVcc:为端口A和片内ADC模拟电路电源输入引脚。不使用ADC时,直接连接到电源正极;使用ADC时,应通过一个低通电源滤波器与Vcc连接。 AREF:使用ADC时,可作为外部ADC参考源的输入引脚。 GND: 芯片接地引脚,使用时接地。 XTAL2:片内反相振荡放大器的输出端。 XTAL1:片内反相振荡放大器和内部时钟操作电路的输入端。 RESET:RESET为芯片复位输入引脚。在该引脚上施加(拉低)一个最小脉冲宽度为1.5us的低电平,将引起芯片的硬件复位(外部复位)。 (2)32根 I/O引脚,分成PA、PB、PC和PD四个8位端口,他们全部是可编程控制的双(多)功能复用的I/O引脚(口)。 四个端口的第一功能是通用的双向数字输入/输出(I/O)口,其中每一位都可以由指令设置为独立的输入口,或输出口。当I/O设置为输入时,引脚内部还配置有上拉电阻,这个内部的上拉电阻可通过编程设置为上拉有效或上拉无效。 如果AVR的I/O口设置为输出方式工作,当其输出高电平时,能够输出20mA的电流,而当其输出低电平时,可以吸收40mA的电流。因此AVR的I/O口驱动能力非常强,能够直接驱动LED发光二极管、数码管等。而早期单片机I/O口的驱动能力只有5mA,驱动LED时,还需要增加外部的驱动电路和器件。 芯片Reset复位后,所有I/O口的缺省状态为输入方式,上拉电阻无效,即I/O为输入高阻的三态状态。 以上我们简单介绍了ATmega16单片机的主要特性以及引脚封装。可以看出,小小的一 华东师范大学 电子科学技术系 马潮 2-7 第 2 章 AVR 单片机的基本结构 块芯片,其内部的组成结构却是相当复杂的。也正式这种复杂,加上多样的程序,才使得单片机在实际应用中变化无穷。 下面,我们从ATmega16的内部结构出发,逐步的介绍它的工作原理和使用方法。 2.3 ATmega16内部结构 图2-4 ATmage16 的结构框图 华东师范大学 电子科学技术系 马潮 2-8 基于 AVR 的单片嵌入式系统原理与实践应用 图2-4是ATmage16 的结构框图。它是在AVR内核(图2-3)的基础上,具体化的一个实例。从图中可以看出,ATmega16内部的主要构成部分有:

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧