Click here to load reader
Upload
talasi
View
95
Download
11
Embed Size (px)
DESCRIPTION
第 8 章 PIC 与计算机接口设计. 本章主要对 PIC 单片机系统的有关数据传输和数据通信的基本方法及相关的器件芯片做较为详细的介绍,围绕 PIC 单片机在实际应用中与计算机通信时的接口设计。根据通信的不同方式介绍 PIC 单片机与计算机的各种通信方式和数据传输方式。 本章内容主要包括: PIC 与计算机的串行通信、 PIC 的 USART 使用及 PIC 的 USB 接口设计等。 PIC 单片机(或者计算机)与外界进行的信息交换经常被人们称为数据通信,通信的基本方式分为并行通信和串行通信两种。 - PowerPoint PPT Presentation
Citation preview
8 PIC PICPICPIC PICPICUSARTPICUSB PIC 81640PIC16F87XPSPRDRE1183 nTnTnT
PIC PIC16F87X/USARTUniversal Synchronous/Asynchronous Receiver TransmitterMSSPMaster Synchronous Serial Port PhilipsI2CIntelSMBUSFreescaleSPINSCMicroWire1-WireRS-232RS433RS-485IntelUSBIEEE-1394CANFFMotorolaLONworks
8.1 RS-232C 8.1DTEDCE 1DTEDTE 2DCEDCEDTEMODEM
8.1 1969EIARS-232CDTEDCE15m20Kb/sModem20m2kmRS-232C25Modem
1977EIARS-449RS-232C10RS-449RS-422RS-423RS-449RS-485RS-422RS-422RS-423RS-485 RS-42210Mb/s1200m RS-423RS-232CRS-232CRS-422RS-422RS-232C300Kb/s600m RS-485RS-4858.1.1 RS-232C RS-232CRSRecommended Standard232CRS-2321969RS-232ARS-232BRS-23212RS-232CCOM1COM2
1RS-232C EIA-RS-232CTXDRXD1MARK -3V-15V0SPACE 315V RTSCTSDSRDTR DCDON+3V+15VOFF=-3V-15V 1-3V-15V0+3V+15VON+3V+15VOFF-3V-15V3V -3+3V01315V RS-232CDB99DB258.1RS-232C
8.1 RS-232C
RS-232C RS-2321-3-15V1+5VRS-232TTLRS-232CRS-232CTTLRS-232MC1488MC1489MAX232EIATTLMAXIMMAX232 8.2MAX232RS-232/+5V4RS-232 8.2 MAX232
8.1.2 RS-2328.3C1C2C3C4V+V-EIAC5VCC0.1UFC1C5MAX232 8.3 MAX232CPE PC
8. 4RS-232RS-232C8. 4 RS-232C
8.1.3 PIC PIC USARTUSARTMicrochip PICPIC16C711 USART I/O1 8. 5RB0RB5RB0 I/ORB0 RS- 485 RS-485PC PC PCPCRS-485 SN75176SN75176DERE DERE DERE RB6 SN75176120 RS- 4851 120R1 RS485 200mV VA-VB200mV1VA- VB-200 mV0VA-VB200 mV ABR
A B RRS485 AB R3R2 8. 5PIC16C711 PC2 PIC PC89600 b/std19600s104s 4MHz 1s PIC16C711 RB0 RB0 INTCON INTF 1 INT
8. 6 PIC52s RB047s RB0s INTF 8R_CNT 8 STATUS CRCV_RC 0 RCV_R 104s C 56s 98s1 RCV_R 1 0 C 0 RCV_R 18 INTF8 RCV_R
RB58. 7PC 8 104sRB5 TRS_R RB5 104s 104s 104s 97s TRS_R C CRB5 1 1 0 1;
8.6 8.7
8.2 PICUSART 8.2.1 PIC16F877USART /USARTUSARTSCISerial Communication InterfaceUSARTPCCRTA/DD/AEEPROM USARTRC6RC7/TX/CK/TX/DTSPENTCSTATRD7TRISCD7D61 USART8///TXSTA/
USART8BRGBaud Rato GeneratorBRGUSARTSPBRG8/TXSTABRGHD2BRGH SPBRGBRGBRG USART BSF STATUSRP0 1 MOVLW 0x19 MOVWF SPBRG 9600 BCF STATUSRP0 0 CLRF RCSTA BSF RCSTASPEN CLRF PIR1 BSF STATUSRP0 1 CLRF TXSTA BSF TXSTABRGH BSF TXSTATXEN BCF STATUSRP0 0 BSF RCSTACREN // /
TXREGTXIFTXIF1TXIFTXREGTXREG8.2.2 8251A 82518. 81CPU RESET6 CLK 30 4.5 CPU8251A
C/ CPUCPU 8251A
:CPU 8
8.8 8251A D0D78CPUD0D78251A 2MODEM 8251AMODEMRS232C
Data Terminal Ready 11CPU
Data Terminal Ready 11CPU
Request To Send CPU51
(Clear To Send 8251AUSART MODEM8251ACPUCTSMODEM8251AMODEM CPU8251A1
3 TxD TxD xRDYCPU TxEN TxRDYCPUTxEN 8251ATxRDYCPU
TxE CPU TxE
TxC 11664
4 RxD RxD RxRDY CPUTxRDYRxRDY CPURxRDY CPU
SYNDET/BRKDET 8251A 8251A08251A 8251A
8.2.3 USART1 PIC16F877 PCUSARTUSARTPIC16F877USARTUSART PIC PC
PORTCRC6RC72PORTCRC6 RC7TXRXUSART RCSTA bit7SPENTRISCbit71TRISCbit60USART RX3 RXUSARTUSART8BRG USART0NRZ18918PIC16F8778BRGPIC16F877 USARTLSBUSARTTXSTA bit2BRGH2166410USARTTXSTAbit4SYNC0 PIC16F877USARTBRGPIC16F877USARTUSART9CPUUSART
2. USARTBRG BRGBRGBRG TXSTA bit2BRCH PIC16F877BRG SPBRG BRGH=0 =FOSC/ (64(X+1)) BRGH=1 =FOSC/ (16(X+1)) XSPBRG0255 BRGH=1SPBRGBRGBRG3. USART USART TXSTARCSTASPBRG TXREG RCREG PIE1 PIR1 8.2 8.2
bit7 CSRC bit6 TX91 =90=8 bit5 TXEN1=;0= bit4 SYNCUSART/1 =0= bit3 bit2BRGH1 =0 = bit1 TRMTTSR1=TSR0=TSR bit0 TX9D9 8.3
8.3 bit7 SPEN1=RC7 RC60 =; bit6 RX91 =90=8 bit5 SREN Bit4 CREN1 =0=
bit3ADDEN1=RSRD810=9 bit2 FERR1=RCREG0= bit1OERR1=CREN0= bit0 RX9D 9 8.4 8.4 bit5 RCIE1=USART0 =US2ART bit4 TXIE1=USART0=USART
8.58.5 bit5 RCIFUSART1=USART;0 = USART bit4 TXIFUSART1= USART;0= USART SPBRGUSR2TABRGSPBRG TXREGRCREG
4PIC16F877PC PC EIA RS- 232CRS- 232C1- 5- 15 V;0+5 +15 VCMOS14.99 V00.01 V;TTL102.4 V0.4 VRS-232C TTL CMOSRS- 232C RS-232CTTL CMOSMAXIMMAX232MAX232MAXIM/40.1F8. 9MAX232PIC16F877TXTTLRS-232C PC PC RS-232C TTL PIC16F877RX5. PC PIC16F877 PCPIC16F877PC PC; PCPCPC PCPC PCPIC16F8779 600 bps81PCPCPCPCPIC16F8778.10
8.9PIC16F877PC1COUNTEQU 0X20TEMPEQU0X21J0EQU0X22
ORG0NOPSTARTGOTOMAINORG0X05MAINBANKSEL TRISCMOVLWB10000000MOVWF TRISCMOVLW0X30 ;RAMMOVWF FSRBCF STATUSRP0MOVLW0X22MOVWFCOUNTBCF PIR1RCIFBSF PIR1TXIFINTRAMMOVFCOUNT0MOVWF INDFINCFCOUNT1INCF FSR1
BTFSS FSR7GOTO INTRAM 8.10
BANKSEL TXSTAMOVLW0X19MOVWF SPBRG ;9 600 bpsMOVLW0X04MOVWF TXSTA ;BCF STATUSRP0MOVLW0X80MOVWF RCSTA ;MOVLW0X30MOVWF FSRBSF RCSTACREN ;BSF STATUSRP0BSF TXSTATXEN ;BCF STATUSRP02WAITBTFSSPIR1RCIFGOTO WAIT ;PCMOVF RCREG0MOVWF TEMP
MOVWF INDFINCF FSRDECFSZTEMP ;1GOTO TXW ;MOVLW0X06MOVWF TEMPWAIT1BTFSS PIR1RCIFGOTO WAIT1 ;MOVF RCREG0MOVWFCOUNTMOVWF TXREGLOOPTXBTFSSPIR1TXIF ;PCGOTOLOOPTXMOVFCOUNT0MOVWF INDFINCF FSRDECFSZTEMPGOTO WAIT1GOTOOVER ;
TXWMOVLW0X09 ;PC9MOVWF TEMPMOVLWD00MOVWFJ03 TXW0MOVF J00MOVWF TXREGINCFJ0 ;08TXW1BTFSS PIR1TXIFGOTO TXW1DECFSZTEMPGOTO TXW0OVERBCF RCSTACREN ; PICPCPCPC PIC16F877
PC RAM ASCII;WindowsANSIANSI126ASCII WindowsASCIIANSIWindows
8.3 USB USBUniversal Serial Bus127 USBPCIISAUSBParellel BusEPPLPTSerial PortRS-232USB 1.1 12MbpsUSB 2.0 480Mbps USBhosthub5hubHub127 SPI-SCSIUSB hub USBgamepadUSBUSB20041USB2005USB
USBUSBUSBUSB1.112MbpsUSB2.0480MbpsPCUSB hostUSBUSB5V500mA UBSUSB2.0 (1) High-speed25Mbps400Mbps480Mbps (2) Full-speed 500Kbps10Mbps12Mbps (3) Low-speed10Kbps100Kbps1.5Mbps USB USB USB USBETDM ISDN USB
8.3.1 USB USB3USBUSB-IF
1.5 Mbit/s 183 KByte/sHuman Interface Devices HID 12 Mbit/s 1.4 MByte/sUSB 2.0USB Hub 480 Mbit/s 57 MByte/sUSB 2.0hubhubTransaction Translator
1
8.11 USB
USB8.118.6 USBD+D- USB5VHUB.USB1394 USB stallhost8.6 USB
2 USBNRZInon-return to zeroinverted10 USBhubSDUSBdevicefunctionshubfunctionhubroothub 4. /pipeUNIXpipelineUSB 0-15/32161603222^nUSB81632641282565121024 /USB/04
0 hub7 device descriptorconfiguration descriptorsinterface settingdefault interface settingalternate interface settings
5. USB USBUSBUSB
USBUSB USBUSBUSBRJ-45USB USBUSB USBUSBUSBUSB
8.3.2 USB1HCD HUBHCD 1.01.1HCD OHCIIntelUHCIVIAUHCIOHCIUHCICPU
USB-IFUSB 2.0 EHCIEHCIEHCI IntelViaUHCIOHCIUSB USB internetUSB USB packet format OFFSET TYPE SIZE VALUE 0 HeaderChksum 1 Checksum of the header by adding the header bytes excluding the header checksum. 1 HeaderSize 1 Size of the header including strings if applicable. 2 Signature 2 Signature 0x1234 4 VendorID 2 USB Vendor ID 6 ProductID 2 USB Product ID 8 ProductVersion 1 Product version 9 FirmwareVersion 1 Firmware version 10 UsbAttributes 1 USB attributes Bit 0 If set to 1 the header includes all three strings language manufacture and product strings; if set to 0 the header does not include any strings. Bit 2 If set to 1 the device can be self powered; if set to 0 it cannot be self powered. Bit 3 If set to 1 the device can be bus powered; if set to 0 it cannot be bus powered.
Bits 1 and 4 ... 7 Not used. 11 MaxPower 1 Maximum power the device needs in units of 2 mA. 12 Attribute 1 Device attributes Bit 0 If set to 1 the CPU speed runs at 24 MHz; if set to 0 the CPU speed runs at 12 MHz. Bit 3 If set to 1 the device's EEPROM can support 400 MHz; if set to 0 it can not support 400 MHz. Bits 1 2 and 4 ... 7 Not used. 13 WPageSize 1 Maximum I2C write page size 14 DataType 1 This value defines if the device is application EEPROM or device EEPROM. 0x01 Application EEPROM 0x02 Device EEPROM Other values are invalid. 15 RpageSize 1 Maximum I2C read page size. If the value is zero the whole PayLoadSize is read in one I2C read setup. 16 PayLoadSize 2 Size of the application if using EEPROM as an application EEPROM; otherwise the value is 0. 0xxx Language string 4 Language string in standard USB string format if applicable. 0xxx Manufacture string ... Manufacture string in standard USB string format if applicable.
0xxx Product string ... Product string in standard USB string format if applicable. 0xxx Application Code ... Application code if applicable.
USBControlisochronousinterruptbulkUSB PChost USBUSB8163264USBEndpoint0 latency 1255ms
host USBframe1msUSBhostUSB90%
8.3.3 USB USBID bDeviceClassIDID;bInterfaceClass2530x000xFFbDeviceClass0x00bInterfaceClass
SubClassProtocol subdefinition ID 0x00 0x01 USB 0x03 0x06 USBPicture Transfer Protocol 0x07 USB 0x08 USB keydrive MMCSDCF 0x09 USB hubs 0x0A USB CDC used for ISDN
0x0E USB 0xE0 dongles 0xFF USB 5USB5V4VUSB5.25VUSBHUBLOW POWER4.375V5V USB 500 mA HUB500mA HUB HUB USB HUB HUB HUB HUB 5V500mAUSB5V0.5AUSBUSB
USB USB USBPCUSBHUBUSBUSBHUBhost127HUBUSBUSBhostPChosthostHUBHUB PCUSB hostUHCIUSB hostOHCIhostWindowsUSBminiclass USB1500bytes187bytes USBpacketpacket IDCRCPacket ID token OUT IN SOF SETUP data DATA0 DATA1 handshake ACK NAK STALL special PRE
Transactions transactionhostdevicehostTokendevicehandshakeUSBINOUTSETUPUSBendpoint1280SETUP8byteDATAACK handshakeSTALL handshakehostPREUSBPRE
8.3.4 USB1USB USBUSBIntelSGS-TomsonCypressPhilips USBA/DUSBUSBUSBUSBUSBfirmware
USBC USB USBUSB2.0USBUSBPC WindowsUSB3USBUSBUSBwin32WDMwindows USBUSBUSBUSB URBUSBRequestBlockIRPI/ 0 RequestPack-etUSBUSBI/ 0WindowsAPI win32win32 I/OIRPUSBUSBIRPIRPURBIRPIRPUSBUSBIRPURB IRPUSBUSBIRPIRPI/ OI/O IRP USBI/O VC
2USB USBIntelMotorolaCypressMicrochipPhilipsUSBUSBIntel8X930AXCYPRESSEZ-USBMotorolaJB2/3/4MicrochipPIC16C745/746ATMALAT43USB321SIEMENSC541UUSBPHILIPSPDIUSBD11I2CPDIUSBP11PDIUSBD12National Semiconductor USBN9602/03/04NetChipNET2888/90OKIMSM60851USBUSB20CUSB20DUSB118CH372/3753 2 USBCypressEZ-USBUSBUSBUSBUSB USB51PICPDIUSBD12PhilipsSIEFIFOUSBUSB1.1/SIEUSB//CRC/PID//
4PDIUSBD12 PDIUSBD12 D12USB USB FIFO PDIUSBD12 PDIUSBD128.12ALE ALEA0VCCVCC+5VVOUT3.320RESET_N18DMACK_NGND811CS_NPDIUS-BD12CS_N14XTAL1XTAL2 6MHZEOT_ND-D+USB D-D+21GL_N LED
8.12 PDIUSBD12
USB USB 1 PDIUSBD12USB DMAD12USBD12CPUD12CPUUSBD12D12 USB CPUCPU D12 PDIUSBD12 CPU USB
2 USB USB PDIUSBD12 . CPU PDIUSBD12PDIUSBD12 PDIUSBD12 PDIUSBD12 PDIUSBD12 FIFO CPU PDIUSBD12 a.; USB b.c.d. USB FIFOe.FIFO USBf.a.PDIUSBD12PDIUSBD12b. 11 c.PDIUSBD12FIFOd.PDIUSBD12FIFO 3PDIUSBD12 PDIUSBD12
a.SetAddress/Enable0b.Set Endpoint Enable 01 c. Set Mode 1-2s Set Mode d. Read Interrupt Register;D12 USB 01 4 USB USB USBab.c.d.e.; 5USB USB11USB2.0 USB MCUUSB MCU
D12 D12 MCU1ms Setup setupsetup8.12 PDIUSBD12 Read Interrupt Register F4H ISREPPFLAGCONTROL-XFER ISRISRD12ISR ISRISR EPPFLAG setup
Control OUT Control INControlOUT Read Last Transac-tion Status40HPDIUSBD12SETUP SET-UPUSB D12 MCU D12 Control Genric ControlMCUD12 Read Last Trans-action Status Register SETUP SETUP MCU SETUP ControlOutMCUMCU Acknowledge Setup command ControlOutMCU SETUP bm-RequestType 8 MCU USB Control IN Read Last Transaction Status40H Control-In interrupt BitD12MCU D12 16 FI-FO MCU 16 MCU 16
MCU16 Control-INMCU 0MCU
8.12
8.13