Bộ môn Cơ Điện Tử
Trường Đại học Bách khoa TP.HCM
Thi giữa học kỳ II, 2008 – 2009 (04/ 2009)
KỸ THUẬT GIAO TIẾP MÁY TÍNH
|
|
|
Câu 1: (4 điểm)
Trình bày cấu trúc và đặc điểm cổng song song máy tính. (0.5đ)
Cấu trúc:
Cổng song song máy tính (LPT) có 25 chân chia làm 3 loại chính
Pin
|
SPP Signal
|
Direction
|
Register.bit
|
1*
|
nStrobe
|
In/Out
|
Control.0
|
2
|
Data 0
|
In/Out
|
Data.0
|
3
|
Data 1
|
In/Out
|
Data.1
|
4
|
Data 2
|
In/Out
|
Data.2
|
5
|
Data 3
|
In/Out
|
Data.3
|
6
|
Data 4
|
In/Out
|
Data.4
|
7
|
Data 5
|
In/Out
|
Data.5
|
8
|
Data 6
|
In/Out
|
Data.6
|
9
|
Data 7
|
In/Out
|
Data.7
|
10
|
nAck
|
In
|
Status.7
|
11*
|
Busy
|
In
|
Status.6
|
12
|
Paper-Out / Paper-End
|
In
|
Status.5
|
13
|
Select
|
In
|
Status.4
|
14*
|
nAuto-Linefeed
|
In/Out
|
Control.1
|
15
|
nError / nFault
|
In
|
Status.3
|
16
|
nInitialize
|
In/Out
|
Control.2
|
17*
|
nSelect-Printer / nSelect-In
|
In/Out
|
Control.3
|
18 - 25
|
Ground
|
Gnd
|
|
Đặc điểm, vì là cổng song song nên được dùng trong truyền thông song song với 8bit dữ liệu được truyền đồng thời.
Mức điện áp (0-5V)
Địa chỉ:
Register
|
LPT1
|
LPT2
|
Data register (Base Address + 0)
|
0x378
|
0x278
|
Status register (Base Address + 1)
|
0x379
|
0x279
|
Control register (Base Address + 2)
|
0x37a
|
0x27a
|
Ứng dụng cổng song song trong điều khiển robot di động như hình vẽ bao gồm
- Xây dựng lưu đồ giải thuật điều khiển robot (1đ)
Giả sử: ON=1; OFF=0;
Sensor1 (Trái)
|
Sensor2 (Phải)
|
Động cơ 1 (Trái)
|
Động cơ 2 (Phải)
|
1
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
0
|
0
|
Lưu đồ (sơ bộ)
- Xây dựng mạch điện điều khiển (1đ)
-
Lập trình điều khiển robot bám line tự động (1.5 đ)
Bao gồm các phần: (tùy vào qui định kết nối mà có những đoạn chương trình khác nhau). Tuy nhiên các điểm cần lưu ý
-
Đọc tín hiệu cảm biến vào LPT, thông qua các chân có hướng vào như thanh ghi trạng thái
(vd LPT1, a = port(379H))
-
Xuất tín hiệu điều khiển qua thanh ghi data (vd port (378H) = 01B, v.v…tùy vào kết nối điều khiển ra)
Câu 2: (5 điểm)
Trình bày cấu trúc, đặc điểm và các kỹ thuật truyền nhận qua cổng nối tiếp của máy tính (1đ)
Cổng nối tiếp thông thường có 9 chân, bao gồm 2 chân truyền nhận dữ liệu và các chân điều khiển
Sơ đồ chân
25 pin
|
9 pin
|
Signal
|
Direction
|
Description
|
1
|
-
|
-
|
-
|
protective ground
|
2
|
3
|
TD
|
DTEèDCE
|
transmitted data
|
3
|
2
|
RD
|
DCEçDTE
|
received data
|
4
|
7
|
RTS
|
DTEèDCE
|
request to send
|
5
|
8
|
CTS
|
DCEçDTE
|
clear to send
|
6
|
6
|
DSR
|
DCEçDTE
|
data set ready
|
7
|
5
|
-
|
-
|
signal ground
|
8
|
1
|
DCD
|
DCEçDTE
|
data carrier detect
|
20
|
4
|
DTR
|
DTEèDCE
|
data terminal ready
|
22
|
9
|
RI
|
DCEçDTE
|
ring indicator
|
23
|
-
|
DSRD
|
DCEçDTE
|
data signal rate detector
|
Truyền nối tiếp là hình thức truyền dữ liệu quan trọng của PC vì tính linh động của nó
Dữ liệu được truyền từng bit, liên tiếp
Chuẩn giao tiếp nối tiếp thông thường là RS232
Mức áp 0: từ +3 đến +25V
1: từ -3 đến -25V
Truyền bất đồng bộ
-
Không có xung clock làm chủ
-
Dữ liệu truyền đi có thông tin để bộ thu đồng bộ tín hiệu: start bit, stop bit.
-
Bộ truyền và thu phải hoạt động cùng tần số clock
Viết đoạn chương trình đọc encoder của động cơ dùng vi điều khiển PIC (0.5đ)
void __attribute__((__interrupt__)) _INT0Interrupt(void)
{
if(PORTBbits.RB0==1) pulse_count1--;
if(PORTBbits.RB0==0) pulse_count1++;
IFS0bits.INT0IF=0;
Viết đoạn chương trình khai báo truyền thông qua cổng nối tiếp của vi điều khiển PIC và gửi giá trị encoder về máy tính. Viết đoạn chương trình khai báo truyền thông qua cổng nối tiếp của máy tính và đọc dữ liệu từ PIC (1)
#define FCY 14745600 // 7.3728Mhz Crystal XTLxPLL8/4 -->chu ki lenh:0.0678us
#define BAUDRATE 115200 // UART1: toc do truyen :86 us/8bit
….
Khai bao UART
void UART1_Initialize()//toc do truyen :8/460800=17us/1 byte
{
CloseUART1();
ConfigIntUART1(UART_TX_INT_EN&UART_TX_INT_PR4);
OpenUART1(0x8000, 0x400,((FCY/BAUDRATE)/16) - 1);
}
KHai bao ngat truyen nhan
void __attribute__((__interrupt__)) _U1TXInterrupt(void)
{
IFS0bits.U1TXIF=0;
}
void __attribute__((__interrupt__)) _U1RXInterrupt(void)
{
IFS0bits.U1RXIF=0;
KHai bao thời gian giữa các truyền (giả sử 2ms) //Timer 1 Period Interrupt=29490/FCY=2ms;
void TIMER1_Initialize()
{
ConfigIntTimer1(T1_INT_PRIOR_5 & T1_INT_ON);
WriteTimer1(0);
OpenTimer1(0x8020,29490);
}
Khai báo ngắt và gửi dữ liệu
void __attribute__((__interrupt__)) _T1Interrupt(void)
{
WriteUART1(pulse_count1);// send pulse_count1 data to UART1
while(BusyUART1());
WriteTimer1(0);
IFS0bits.T1IF=0;
Viết đoạn chương trình hiển thị giá trị đọc được lên màn hình máy tính (1đ)
Để giao tiếp RS232 ta sử dụng Namespace tên là using System.IO.Ports;
Mở cổng giao tiếp
Com1.Open();
Nhận và gởi dữ liệu
Tạo hàm ngắt nhận dữ liệu RS232 trong Form1.cs
Tất cả data trong bộ đệm nhận sẽ được gán vào cho biến chuỗi data_RS232.
Giả sử Gởi chuỗi dữ liệu “ĐH BKTPHCM”:
Com1.WriteLine("ĐH BKTPHCM");
Đóng cổng giao tiếp:
Com1.Close();
Xây dựng lưu đồ giải thuật điều khiển cho hệ thống (gồm luật điều khiển PID trên máy tính và kỹ thuật PWM trên PIC) (1.5đ)
void pid(void) 0.5đ
{
CurrentPos = Com1.ReadingExisting();
PosError = DesiredPos - CurrentPos;
PosIntegral = PosError *0.01+ PosIntegral;
PosDer = (PosError – CurrentPosPrevious)/0.01
u = ((long)Ksp * (long)PosError +(long)Ksi * (long)PosIntegral + (long)Ksd*PosDer) ;
CurrentPosPrevious=CurrentPos;
}
PWM khởi tạo(0.5)
void InitMCPWM()//khoi dong PWM
{
ConfigIntMCPWM(PWM_INT_EN&PWM_INT_PR2);
PWMCON1=0x0700;
OVDCON=0x0000;
PTPER=FCY/FPWM-1;
PDC1=0;
PDC2=0;
PTCON=0x8000;
PTCONbits.PTOPS=10;
}
XUất PWM (0.5)
PWMCON1=0x0777;//enable PWM output
DutyCycle=u;
PDC1=DutyCycle;
PDC2=PDC1;
Viết toàn bộ chương trình điều khiển cho hệ thống (1d) (Khó, đề nghị không tính điểm câu này)
Câu 3: (1 điểm)
Trình bày cấu trúc, đặc điểm và các kỹ thuật truyền nhận qua cổng USB của máy tính (1đ)
-
USB (Univeral Serial Bus) là hình thức giao tiếp hữu dụng với tính năng Plug and Play
-
Ra đời từ năm 1996, là kết quả của sự hợp tác của 7 công ty hàng đầu thế giới: Compaq, Digital Equipment Corporation, IBM, Intel, Microsoft, NEC, và Northern Telecom.
-
USB tao cơ hội cho các thiết bị giao tiếp tốc độ cao: digital camera, multimedia device, telephone device, USB disk, …
-
Dễ sử dụng:
-
Plug and Play: tính năng cho phép người sử dụng không cần tắt máy để cài đặt cấu hình như interrupt, dipswitch, …
-
Bộ điều khiển USB tự phát hiện và nhận biết khi thiết bị được kết nối hoặc ngắt kết nối.
-
Hỗ trợ truyền dữ liệu thời gian thực:
-
Ứng dụng này cho phép giao tiếp với các thiết bị multimedia để truyền tín hiệu âm thanh hoặc hình ảnh
-
Mở rộng Port:
-
USB cung cấp 1 giải pháp mở rộng port cho phép tối đa 127 thiết bị kết nối cùng lúc với 1 PC
-
Với tốc độ kết nối mở rộng lên đến 12Mbps, nhưng mục tiêu của USB là dành cho các thiết bị tốc độ thấp và trung bình như: keyboard, mice, modem, scanner,…
-
Các chuẩn giao tiếp
-
USB 1.0
-
USB 1.1
-
USB 2.0
Mức logic
Có 4 kiểu truyền USB:
-
Control transfer:
-
truyền 2 hướng
-
hỗ trợ cài đặt, truyền thông tin giữa host và function
-
Gồm 3 giai đoạn: setup, data, status
-
Mục đích truyền thông tin khi thiết bị bắt đầu kết nối với host
-
Isochronous transfer:
-
truyền 1 hướng hoặc 2 hướng
-
mục đích truyền dữ liệu với tốc độ cố định, bỏ qua lỗi
-
Ví dụ: truyền voice qua USB
-
Interrupt transfer:
-
Chỉ truyền 1 hướng đi vào host
-
Mục đích truyền dữ liệu nhỏ, không liên tục
-
Ví dụ: thiết bị sử dụng interrupt như keyboard, mouse
-
Bulk transfer:
-
truyền 1 hướng hoặc 2 hướng
-
mục đích truyền dữ liệu lớn, chính xác, không khắc khe về thời gian
-
Ví dụ: scanner, printer, USB disk
Chia sẻ với bạn bè của bạn: |