2 ทฤษฎีและหลักการ · 3 deta1 in/out data-1 no 4 deta2 in/out data-2...
TRANSCRIPT
3
2ทฤษฎและหลกการ
2.1 การ คอมพวเตอรกบอปกรณภายนอก
ามบทบาท ตอชวตประจาวนของมนษยมากไมวาจะเปนหนยนตหรอแขนกลในงานอตสาหกรรม
การศกษาและธรกจ (PC Computer) สวนใหญเราใชในการพมพงานเอกสาร เลนเกมส หรอสบคนขอมลผานเครอขายประสทธภาพ มากนก
(Interface) (External Instrument) เรยกวา(Hard Ware Interface) เชน ระบบเตอนภย การควบคมเปด-การวดและควบคมอณหภม และสเตปเปอรมอเตอรในแขนกลหรอหนยนต นอกยงสามารถใชตดตอกบไมโครคอนโทรลเลอรได
า เราจะเลอกใชวธใด แสดงไวในรป 2.1
2.1 (Hardware Interface)
4
ก จะสามารถควบคมอปกรณ2 คอ
ๆ เชนมอเตอร ( )
2. เปนตวกนชน (Buffer) ระหวางเคมสญญาณอนพตไมเหมาะสมเขามา เชน ไฟฟากระแสสลบ 220 โวลต ปน
ไดจงตองพจารณาถง
2 ประเภท คอ1. อปกรณอนพต
คอมพวเตอร เชน สวตช ตวตรวจจบ (Sensor) ตาง ๆ เกอนจะ
ๆ ตอไป2. อปกรณเอาทพต
มอเตอร แอลอด แอลอดแบบเจดสวนสเตปเปอรมอเตอร(Soft Ware
Interface) กบแผง หลายโปรแกรม เชน ภาษาแอสแซมบล ภาษาซ VisualBasic เปนตน สาหร VisualBasic 6.0 รบ-สง เปนฐานสอง ฐานสอง
เรยกวา 1 บต 8 บตหรอ 16 บตเชน
- ผานพอรตขนาน (Parallel Port) - ผานพอรตอนกรม (Serial Port)- USB พอรต (Universal Serial bus) - Slot Card (ISA , PCI)
อมพวเตอรกบอปกรณภายนอก ควรเลอกระบบใหสมพนธกบ
1. USB (Universal Serial bus) รวมถง Firewire (IEEE-1348)ขอมลระหวางคอมพวเตอรกบคอมพวเตอร หรอคอมพวเตอรกบอปกรณ ระบบ Firewire ออกแบบ
ภาพ เสยง วดโอ
5
2. Ethernet อสารระหวางคอมพวเตอรตอกน ในเครอขายหลายตว มความเรวสง อปกรณและการโปรแกรมมความซบซอน ราคาสง
3. Microwire , SPI , IIC Asynchronous Serial โดยใชสายสญญาณ 2 เสน นยมใชในระบบควบคมดวยไมโครคอนโทรลเลอร
4. Centronic Parallel Port 8 บต จงใหความเรวสง นยมใชตดตอระห หรอสแกนเนอร
5. IrDA (Interface Data Association)ลไมได หรอตองการความสะดวกสบาย เชน รโมททว
6. MIDI (Musical Instrument Interface)
2.1รปแบบ ระยะทาง
( เมตร )ความเรว
(บต/วนาท )Parallel Parallel 2.8 3-9 1MRS-232 Asynchronous Serial 2 15-30 20MRS-242 Asynchronous Serial 2 1,220 10MRS-485 Asynchronous Serial 32 หนวยของโหลด 1,220 10MUSB Asynchronous Serial 127 4.8 12MFirewire Serial 64 4.5 400MMicrowire Synchronous Serial 8 3 2MEthernet Serial 1024 487 10MMIDI Serial current loop 2 4.5 31.5KirDA Asynchronous Serial
Interface2 1.8 115K
I2C Synchronous Serial 40 5.5 400KSPI Synchronous Serial 8 3 2.1MIEEE-4SS(GPIB)
Parallel 15 18.3 1M
6
2.2. พอรตขนาน (Parallel Port)(หรอเรยกวาเคส )ใชสาหรบ
การตอพวงอปกรณภายนอกเขาคอมพวเตอรTTL (ระดบสญญาณ 1 และ
0) สาหรบการควบคมหรอรบคาสญญาณจากอปกรณภายนอกเจามาประมวลผลได พอรตขนานแบบมาตรฐาน (StandardParallel Port , SPP ) ประกอบดวยสายสญญาณ 3 กลม คอ สายสญญาณขอมล (Data port) ,สายสญญาณแสดงสถานะ (Status port) , และสายสญญาณควบคม (Control port)
ตเตอรตวผ 25 ขา
2.2 คอนเนคเตอร DB25 ตวผ 25 ขา
2.3 โครงสรางและสายสญญาณพอรตขนาน
7
2.2ขา (DB25) ชนดสญญาณ Register Invert
1 nStrobe Out Control-0 Yes2 Deta0 In/Out Data-0 No3 Deta1 In/Out Data-1 No4 Deta2 In/Out Data-2 No5 Deta3 In/Out Data-3 No6 Deta4 In/Out Data-4 No7 Deta5 In/Out Data-5 No8 Deta6 In/Out Data-6 No9 Deta7 In/Out Data-7 No
10 nAck In Status-6 No11 Busy In Status-7 Yes12 Paper-Out In Status-5 No13 Select In Status-4 No14 Linefeed Out Control-1 Yes15 nError In Status-3 No16 nInitialize Out Control-2 No17 nSelcet-Print Out Control-3 Yes
18-25 Ground - - -
2.3 พอรตอนกรม (Serial port)พอรตอนกรมหรอเรยกวาคอมพอรต (COM Port. Communication Port) ใชสาหรบสง
Package ลกษณะจะเปนพอรตตวผ มขาสญญาณ 9 ขา อยดานหลงคอมพวเตอร และจาทาการสงสญญาณขอมลไปทละ 1บต
และขนาดความกวางของชองชองสญญาณ (Bandwidth)าร 0.1 Mbps
ใหญจะใชกบอปกรณรนเกา ๆ เชน โมเดม หรอเมาส แตปจจบนไมพบพอรตอนกรมในคอมพวเตอรรนใหม USB
8
2.4 ลกษณะคอนเนคเตอรตามมาตรฐาน RS-232C (DB-25 & DB-9)คอนเนคเตอรของพอรตอนกรมตามมาตรฐานของ RS-232 ม 2 แบบ คอ แบบ D- Type
25 ขา และ แบบ D Type 9 ขา วผอยดานหลงของคอมพวเตอรอกบคอมพวเตอรจงตองใชคอนเนตเตอรชนดตวเมย
2.2aคอนเนคเตอร DB9 คอนเนคเตอร DB25 ชนดของสายสญญาณ
1 8 Data Carrier Detect 1:DCD
In
2 3 Received Data : RxD In3 2 Transmitted Data : TxD Out4 20 Data Terminal Ready :
DTROut
5 7 Signal Ground : GND -6 6 Data Set Ready : DSR In7 4 Request To Send : RTS Out8 5 Clear To Send : CTS In9 22 Ring Indicator : RI In
2.4 การจดขาของคอนเนคเตอรพอรตอนกรมตามมาตรฐาน RS-232ก. แบบ DB-9 ข. แบบ DB-25
และ DB-25
9
2.5 การตอสายลงคขอมลของพอรตอนกรม
2 เขาดวยกนผานสายลงคขอมลของพอรตอนกรมและเขยนโปรแกรมควบคมสงขอมลถงกนได สายลงคขอมลระหวางคอมพวเตอรจะตองตอคอนเนคเตอร DB 9 ชนดตวเมยเขาดวยกน คเตอรของพอรตอนกรมเปนตวผ) รปแบบ
2.5 แสดงรปแบบการตอสายลงคของพอรตอนกรม
2.6 การตออปกรณภายนอกกบพอรตอนกรมของคอมพวเตอรแบบตางๆ
10
2.6 การรบและสงขอมลแบบอนกรม (Universal Synchronous Asynchronous Transmitter:USART)
2(Asynchronous Mode)
อนกรมแบบซงโครนส (Synchronous Mode)
ดยสามารถแบงออกเปนลกษณะการใชงานได 3 แบบคอ
I. แบบซมเพลกซ (Simplex) เปนการสง หรอรบขอมล แบบทศทางเดยวII. แบบฮาลฟดเพลกซ (Half Duplex) เปนการสงและรบขอมลแบบสลบกน
ไมสามารถรบ-สงในเวลาเดยวกนไดIII. แบบฟลดเพลกซ (Full Duplex) สามารถรบ-สงขอมลในเวลาเดยวกนได
หมายเหต : สามารถดโฟลวชารต ไดในภาคผนวก ข.
2.7 รจสเตอรควคมการรบสงขอมลในโหมดการรบสงขอมลของ USART
อย 2TXSTA: TRANSMIT STATUS AND CONTROL REGISTER ( ADDRESS: 0x98h )R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R - 1 R/W-0
CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9Dbit7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
RCSTA: RECECIVE STATUS AND CONTROL REGISTER ( ADDRESS : 0x18h)R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R - 0 R - 0 R - x
SPEN RX9 SREN CREN ADDEN FERR OERR RX9Dbit7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
11
2.8 BAUDCTL: รจสเตอรควบคมอตราการถายทอดขอมลหรอบอดเรต0x187 อยในแบงค 3 โดย
ทางานรวมกบรจสเตอร SPBRG ( Address 0x99 , Bank 1) SPBRGH (Address 0x9A , Bank 1)
LINR – 0 R – 1 U – 0 R/W-0 R/W-0 U – 0 R/W-0 R/W-0
ABDOVF RCIDL - SCKP BRG16 - WUE ABDENbit7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
Bit 7 ABDOVF : บตแสดงการโอเวอรโฟลวของการเลอกบอดเรตอตโนมต โหมดอะซงโครนส
“ 0 ” = ไทเมอรของสวนกาหนดบอดเรตอตโนมตไมเกดโอเวอรโฟลว“ 1 ” = ไทเมอรของสวนกาหนดบอดเรตอตโนมตโอเวอรโฟลว
โหมดซงโครนสไ
Bit 6 RCIDL : บตแฟลกแจงสถานะตวรบวาง โหมดอะซงโครนส
“ 0 ” = กาลงรบขอมล“ 1 ” = ตวรบวาง
โหมดซงโครนส
Bit 5 ไมใชงาน อานคาเปน “ 0 “Bit 4 SCKP : บตเลอ
โหมดอะซงโครนส“ 0 “ = RB7/TxD/CK“ 1 “ = สงขอมลกลบลอจกไปยงขา RB TxD/CK
โหมดซงโครนส“ 0 “ =“ 1 “ = องสญญาณนาฬกา
12
Bit 3 BRG16 :“ 0 “ = เลอก 8 บต“ 1 “ = เลอก 16 บต
Bit 2 ไมใชงาน อานคาเปน “ 0 “Bit 1 WUE : บตเอนเอเบลการเวกอปของโมดล EUSART
โหมดอะซงโครนส“ 0 “ = ตวรบขอมลทางานปกต“ 1 “ = ตวรบขอมลจะรอสญญาณขอบขาลง
หลงจากเขาแตบต RCIF จะเซตและทาใหบต WUE
ในโหมดปกตตอไป โหมดซงโครนส :
Bit 0 ABDEN : โหมดอะซงโครนส (โหมดซงโครนส : ไมมใ )
“ 0 “ = Disable“ 1 “ = Enable และจะเคลยรอตโน
2.9 อตราความเรวในการรบสงขอมล ( Baud Rate Generator : BRG )
อตราความเรวในการรบสงขอมล หมายถง จานว สงได ตอ วนาทเชน บอดเรต 9600 กคอ สามารถรบสงขอมลได 9600 บต ตอ วนาท โดยการกาหนดคาความเรวใน
โดยคาอตรา Baud rate สเตอร SPBRG 8 บต คาอตราบอดเรต 00h – FFh และ ในโหมดอะซงโครนส ยงสามารถกานหดโหมดความเรวในการรบสงขอมลไดจากบต BRGH (TXSTA <2>)อกดวย สวนการทางานในโหมดซงโครนส บต BRGHเรต
13
2.3SYNC BRGH = 0 ( Low speed ) BRGH = 1 ( high speed )0 (Asynchronous) Baud Rate = Fosc / ( 64 ( x+1 )) Baud Rate = Fosc / ( 16 ( x+1 ))1 (Synchronous) Baud Rate = Fosc / ( 4 ( X+1 )) -
ใน PIC16F887 UART เปน EnhancedUSART หรอ EUSART
รองรบการรบสงขอมลแบบฟลดเพลกซ มบฟเฟอรอนพตรองรบ 2 อกขระ มบฟเฟอรเอาทพตรองรบ 1 อกขระ สามารถเลอกความยาวของขอมลได 8 or 9 bit รองรบการตรวจจบแอดเดรสในโหมด 9 บต มการตรวจจบความผดพลาดบฟเฟอรอนพตโอเวอรรนและความผดพลาดทาง
เฟรมขอมล รองรบการทางานแบบฮาลฟดเพลกซซงโครนสมาสเตอรและสเลฟ สามารถเ รองรบการทางานโหมดสลปหรอโหมดประหยดพลงงาน LIN สามารถตรวจจบ และปรบคาบอดเรตหรอ
อตราเรวในการถายทอดขอมลไดอตโนมต,และสงอกขระหยดทางาน 13 บตได
14
2-4 รายละเอยดคาของรจสเตอร SPBRG, คาบอดเรตจรง และเปอรเซนตความผดพลาดUSART (บต BRGH = 0) ความ
ละเอยดบต 8 บต (บต BRG 16 = 0)
บอดเรต(bps)
= 20MHz = 8MHz = 4MHzบอดเรต ผดพลาด
(%)คาของ
SPBRGบอดเรต ผดพลาด
(%)คาของ
SPBRGบอดเรต ผดพลาด
(%)คาของ
SPBRG1200 1221 1.73 256 1202 0.16 163 1202 0.16 512400 2404 0.16 120 2404 0.16 51 2404 0.16 259600 9470 0.16 32 9615 0.16 12 - - -19.2k 19.5k 0.16 15 - - - - - -57.8k - - - - - - - - -
115.2k - - - - - - - - -
2-5 รายละเอยดคาของรจสเตอร SPBRG, คาบอดเรตจรง และเปอรเซนตความผดพลาดUSART (บต BRGH = 0) ความ
ละเอยดบต 16 บต (บต BRG 16 = 1)
บอดเรต(bps)
= 20MHz = 8MHz = 4MHz
ผดพลาด(%)
คาของSPBRG
ผดพลาด(%)
คาของSPBRG
ผดพลาด(%)
คาของSPBRG
1200 - - - - - - 1202 0.16 2672400 - - - - - - 2404 0.16 1039600 9615 0.16 129 9615 0.16 51 9615 0.16 2519.2k 19.2k 0.16 64 19.23k 0.16 25 10.23k 0.16 1257.8k 56.82k -1.36 -21 55.56k -3.55 8 - - -
115.2k 113.64k -1.36 10 - - - - - -
15
2-6 รายละเอยดคาของรจสเตอร SPBRG, คาบอดเรตจรง และเปอรเซนตความผดพลาดUSART (บต BRGH = 1) ความ
ละเอยดบต 16 บต (บต BRG 16 = 0)
บอดเรต(bps)
= 20MHz = 8MHz = 4MHzผดพลาด
(%)คาของ
SPBRGบอดเรต ผดพลาด
(%)คาของ
SPBRGผดพลาด
(%)คาของSPBR
G1200 1200 -0.03 1041 1199 -0.08 416 1202 0.16 2072400 2399 -0.03 520 2404 0.16 207 2404 0.16 1039600 9615 -0.03 129 9615 0.16 51 9615 0.16 2519.2k 19.2k 0.16 64 19.2k 0.16 25 19.2k 0.16 1257.8k 56.82k -1.36 21 55.56k -3.55 8 - - -
115.2k 113.64k -1.36 10 - - - - - -
2-7 รายละเอยดคาของรจสเตอร SPBRG, คาบอดเรตจรง และเปอรเซนตความผดพลาดUSART (บต BRGH = 1) ความ
ละเอยดบต 16 บต (บต BRG 16 = 1)
บอดเรต(bps)
= 20MHz = 8MHz = 4MHzผดพลาด
(%)คาของ
SPBRGผดพลาด
(%)คาของ
SPBRGผดพลาด
(%)คาของ
SPBRG1200 1200 -0.01 4166 1200 -0.02 1666 1200 0.04 8322400 2400 0.02 2082 2401 0.04 832 2398 0.16 4169600 9597 -0.03 520 9615 0.16 207 9615 0.16 10319.2k 19.23k 0.16 259 19.23k 0.16 103 19.23k 0.16 5157.8k 57.47k -0.22 86 57.14k -0.79 34 56.82k 2.12 16
115.2k 116.3k 0.94 42 117.6k 2.12 16 111.1k -3.55 8
16
Example 1 กาหนดให การรบสงขอมลเปนโหมดอะซงโครนส และ CPU (Fosc)10 MHz ตองการอตราความเรวในการรบสงขอมล 9600 bit / sec จะสามารถคานวณหาคาของรจสเตอร SPBRG
BRGH = 0จาก Baud Rate = Fosc / ( 64 ( X + 1 ) )
9600 = 10 x 106 / ( 64 ( X + 1 ) )( X + 1 ) = 16.276
X = 15.276~ 15 แปลงเปนเลขฐานสบหก = 0Fh
๏ X = SPBRG BRGH = 1 คอ อยในโหมดความเรวสง
จาก Baud Rate = Fosc / ( 64 ( X + 1 ) )9600 = 10 x 106 / ( 16 ( X + 1 ) )( X + 1 ) = 65.104
X = 64.104~ 64 แปลงเปนเลขฐานสบหก = 40h
๏ X = SPBRG
Example 2 กาหนดใหการรบสงขอมลเปนโหมดซงโครนส และ CPU (Fosc)4 MHz ตองการอตราความเรวใน การรบสงขอมล 9600 bit / sec จะสามารถคานวณหาคาของSPBRG
จาก Baud Rate = Fosc / ( 4 ( X + 1 ) )9600 = 4 x 106 / ( 4 ( X + 1 ) )( X + 1 ) = 104.1667
X = 103.1667~ 103 แปลงเปนเลขฐานสบหก = 76h
๏ X = SPBRG
17
SPBRG
Example 3 การคากาหนดให การรบสงขอมลเปนโหมดอะซงโครนส และ CPU (Fosc)
10 MHz ตองการความเรวในการรบสงขอมล 9600 bit / sec จะสามารถคานวณหาคา SPBRG คอ BRGH = 0 คออยในโหมดค
จาก Baud Rate = Fosc / ( 64 ( X + 1 ) )9600 = 10 x 106 / ( 64 ( X + 1 ) )( X + 1 ) = 16.276
X = 15.276~ 15 แปลงเปนเลขฐานสบหก = 0Fh
Baud Rate = 10 x 106 / ( 64 (15+1 ))Baud Rate = 10 x 106 / 1024Baud rate = 9765.625
( error )Error = (9765.625 – 9600) x 100 / 9600
= 1.725 %
2.10 การตรวจจบและปรบแตงบอดเรตอตโนมตของโมดล EUSARTUSART ปกตของ PIC16F887
LIN(local Interconnect Network )หากตองการใหโมดล EUSARTบต ABDEN (บต 0 )ในรจสเตอร BAUDCTL เปาหมายคอ พยายามทาใหไมโครคอนโทรลเลอรสามารถปรบคาบอดเรตของตวรบโมดล EUSART
2.13
18
สกบบส LIN คอ 0x55 Uขอมล 0x55 กคอ 01010101 5
5ครบ 8 นสดการรบขอมล 1 ไบต บต ABDEN จะเคลยรโดยอตโนมต มการเซตบตแฟลก RCIF RCIDL กถกเซต
ตวรบขอมลวางจงหวะตอมาตองอานขอมลออกจากรจสเตอรตวรบRCREG RCIF RCREG
เตอรSPBREG และ SPBREGH 2.13 คอ 0x001CEUSART LIN ในไซเกลใหมดวยการทางานในโหมดปกตของโมดล EUSART
2.8 ความสมพนธระหวางบต BRG16 และ BRGH ใสญญาณนาฬกาของการตรวจจบบอดเรตอตโนมต
BRG16 BRGHของสวนกาเนดบอดเรต
การตรวจจบบอดเรตอตโนมต
0 0 Fosc/64 Fosc/5120 1 Fosc/16 Fosc/1281 0 Fosc/16 Fosc/1281 1 Fosc/4 Fosc/32
2.7 ไดอะแกรมเวลาการทางานของโมดล EUSART ในโหมดตรวจจบบอดเรตอตโนมต
19