Thiết kế bộ chuyển đổi FDD – USB:

Một phần của tài liệu Báo cáo thực tập tốt nghiệp: quá trình biên dịch, xây dựng chương trình khởi động trên nền linux chạy cho kit mini 2440 (Trang 29 - 36)

2.3.1 Phương pháp chuyển đổi:

- Như đã nói ở trên, FDD chỉ nhận được những định dạng đĩa có dung lượng cố định và chúng rất nhỏ:

Kích thước đĩa (Inch) 3,5” 3,5” 3,5” 5,25” 5,25” 5,25” 5,25” 5,25”

Dung lượng đĩa (KB) 2.880 1.440 720 1.200 360 320 180 160

Media descriptor byte F0h F0h F9h F9h FDh FFh FCh FEh Mặt chứa dữ liệu 2 2 2 2 2 2 1 1 Track mỗi mặt 80 80 80 80 40 40 40 40 Sector trên mỗi track 36 18 9 15 9 8 9 8 Byte trên mỗi sector 512 512 512 512 512 512 512 512 Sector trên mỗi cluster 2 1 2 1 2 2 1 1 Tổng số sector trên đĩa 5.760 2.880 1.440 2.400 720 640 360 320 Tổng số sector sẵn sàng 5.726 2.847 1.426 2.371 708 630 351 313 Tổng số cluster sẵn sàng 2.863 2.847 713 2.371 354 315 351 313

D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 26 Trong khi đó, USB lại có dung lượng tùy biến và thường lớn hơn rất rất nhiều so với những chiếc đĩa mềm. Vậy phải làm thế nào để FDD có thể sử dụng được hết dung lượng của USB?

Đã có rất nhiều người cũng đã nghiên cứu về vấn đề này và kết quả đều dẫn đến phương pháp ảo hóa: có nghĩa là đưa file ảnh trong USB mount thành 1 nội dung của ổ đĩa mềm. Mỗi file ảnh tương đương với dung lượng của một đĩa mềm. Để tạo file ảnh này, ta có thể sử dụng chương trình Winima85 để tạp ra trên máy tính dùng Windows.Đặt tên file theo thứ tự làn lượt 0001.img, 0002.img... xxxx.img để tiện quản lý và kèm theo 1 file text info.txt ghi chú thông tin(File text này có thể mở được và hiển thị lên màn hình của thiết bị chuyển đổi.)

Phương pháp chuyển đổi được trình bày theo sơ đồ sau:

Giải thích sơ đồ hoạt động của hệ thống: Trong thiết bị chuyển đổi bao gồm các khối: * Khối “Mã Hóa và Giải Mã chuẩn FDD”:

- Nhận tín hiệu từ cổng FDD chuyển thành tín hiệu theo chuẩn riêng của hệ điều hành trên thiết bị nhúng và được đưa vào bộ nhớ theo sự điều khiển của khối xử lý trung tâm.

- Nhận tín hiệu từ khối xử lý hoặc từ bộ nhớ theo sự điều khiển của khối xử lý thành tín hiệu theo chuẩn FDD để đưa ra cáp kết nối.

* Khối “Bộ Nhớ” là nơi lưu trữ dữ liệu tạm thời để xử lý và nơi lưu trữ cố định Firmware cho thiết bị.

D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 27 - Đọc tín hiệu từ cổng USB chuyển thành tín hiệu theo chuẩn riêng của hệ điều hành trên thiết bị nhúng và được đưa vào bộ nhớ theo sự điều khiển của khối xử lý trung tâm.

- Nhận tín hiệu từ khối xử lý hoặc từ bộ nhớ theo sự điều khiển của khối xử lý thành tín hiệu theo chuẩn USB để đưa ra cổng kết nối.

* Khối “Xử Lý trung tâm”: Có nhiệm vụ thực thi lệnh, xử lý dữ liệu (Giống như CPU trong máy tính)

* Khối “điều khiển”: Nhận các tín hiệu điều khiển từ con người. (Từ đây ta có thể lựa chọn file nào làm đĩa ảo cho ổ đĩa)

* Khối hiển thị: hiển thi trạng thái ổ đĩa. Hoạt động dữ liệu:

* Trên máy tính, ta tạo ra các file định dạng ảo cho ổ đĩa mềm (mỗi file 1,44Mb – Chuẩn FDD 1.44) tương đương với một đĩa mềm thật và đưa vào USB.

* Trên thiết bị chuyển đổi: +Chế độ đọc dữ liệu:

- Load file từ USB theo yêu cầu của khối điều khiển. - Xử lý dữ liệu

- Mã hóa thành chuẩn FDD + Chế độ ghi dữ liệu:

- Giải mã dữ liệu gửi xuống từ FDD - Xử lý dữ liệu

- Ghi vào file theo lựa chọn của khối điều khiển

2.3.2 Thiết kế mạch chuyển đổi FDD – USB:a,Sơ đồ khối: a,Sơ đồ khối:

D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 28

b,Khối Giao tiếp FDC:

- Chuyển nhận các tín hiệu từ Khối xử lý trung tâm thành các tín hiệu mã hóa theo chuẩn FDC (MFM, FM, GRC), sao cho máy tính nhận usb là một ổ đĩa mềm.

Tín hiệu của cổng FDC ( Floppy Disk Controller) có ba loại. Vì thế, khối giao tiếp FDC cần phải cần thực thi chức năng của ba loại tín hiệu này.

- Khối Data Port: Thực hiện truyền và nhận dữ liệu qua cổng FDC. Trong khối này sẽ phải thực hiện được mã hóa và giải mã định dạng MFM/FM/GCR. Đó là các định dạng mã hóa của đĩa mềm.

- Khối MST ( Main Status Register): Thực hiên việc truyền thông tin cho máy tính biết trạng thái của ổ đĩa mềm (ảo), trạng thái đọc/ghi của ổ đĩa. Nó sẽ truyền một tín hiệu 8bit cho máy tính.

- Khối Control Port: Nhận lệnh từ máy tính. Đó là các lệnh nhằm thực hiện việc bật tắt các động cơ ở trong đĩa mềm, việc lựa chọn ổ đĩa cứng từ máy tính. Nó sẽ nhận được một lệnh 8 bit nhằm thực hiện các chức năng trên. (adsbygoogle = window.adsbygoogle || []).push({});

Thông qua giao thức FDC nhận dữ liệu, lệnh từ máy tính chuyển vào bộ nhớ đệm chờ Bộ xử lý trung tâm giải quyết.

c,Khối xử lý trung tâm.

D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 29 Đảm bảo việc xử lý các tiến trình nhằm chuyển đổi giữa hai giao thức truyền tín hiệu là USB và FDC. Khối xử lý trung tâm nhận tín hiệu điều khiển từ FDC để thực hiện đọc ghi vào file trên USB. File được đọc ghi phụ thuộc vào lựa chọn từ khối điều khiển của thiết bị.

Chức năng các khối:

- Khối Giả Lập Các Tín Hiệu FDC Khác: Trong giao tiếp FDC, điều chúng ta qua tâm nhất là luồng dữ liệu. Tuy nhiên bên cạnh dữ liệu, giao tiếp FDC còn mang đến các tín hiệu thông tin khác. Nó bao gồm các trạng thái của ổ đĩa, dung lượng đĩa mềm, điều khiển bật tắt động cơ trong ổ đĩa, ngắt… Vì vậy, Khối Xử Lý Trung Tâm cần phải xử lý được các tín hiệu như vậy. Các tín hiệu này . Các tín hiệu này có trong thông tin file *.img

- Khối Mã Hóa và Giải Mã MFM: Việc trao đổi dữ liệu trên đĩa mềm và máy tính được mã hóa theo chuẩn MFM (Modified Frequency Modulation). MFM là thuật toán mã hóa dành cho loại đĩa mềm hai mặt. Khi giao tiếp với máy tính, luồng dữ liệu của ta được mã hóa bằng MFM sẽ làm máy tính coi đây là đĩa mềm. Cách thức mã hóa của MFM: “ Với các bit tín hiệu (x,y,z…) nó sẽ được mã hóa thành (x, x NOR y, y, y NOR z, z, z NOR…). Một bit “0” sẽ được mã hóa thành “10” nếu đằng trước nó là bit “0” và được mã hóa thành bit 1 nếu đằng trước nó là bit “1”. Một bit “1” luôn được mã hóa thành “01”.

Ta có bảng mã hóa sau:

Data xx0 0x.. xx0 1x.. xx1 0x.. xx1 1xx..

MFM clock bit xx 1 x.. .xx 0 0x.. .x0 0 x.. .x0 0 0x.. MFM encode .x010x.. xx0010x.. x0100x.. x01010x..

(Bảng mã hóa MFM /-- x là bit giá trị tượng trưng chưa cần tính) - Khối Lưu vào Bộ Nhớ: Khối Xử lý Trung Tâm sẽ cấp một lệnh nhằm cho phép lưu

dữ liệu vào bộ nhớ.

- Khối Đọc dữ liệu của USB từ Bộ Nhớ: Cấp lệnh để xử lý dữ liệu có trong bộ nhớ. - Khối Truyền dữ liệu từ USB sang Bộ Nhớ: Bản thân trong khối giao tiếp usb có sẵn

một bộ nhớ đệm. Bộ Xử Lý Trung Tâm sẽ cấp lệnh để cho phép dữ liệu từ bô nhớ đệm đó được truyền đến bộ nhớ bên trong khối xử lý trung tâm.

- Khối Ghi Dữ Liệu Sang USB: Để ghi dữ liệu từ máy tính sang USB, bộ xử lý sẽ lưu tạm thời dữ liệu vào bộ nhớ, sau đó cấp lệnh để chuyển dữ liệu đó sang usb.

d,Bộ nhớ đệm:

Là nơi lưu trữ tạm thời của dữ liệu trước khi được truyền qua cổng FDC hoặc cổng USB. Bộ nhớ sẽ có hai chế độ cơ bản:

- Write mode ( chế độ ghi): Nhận dữ liệu từ USB hoặc máy tính. - Read mode ( chế độ đọc): Truyền dữ liệu sang USB hoặc máy tính.

D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 30

e,Khối giao tiếp USB:

Thông qua giao thức usb, nhận dữ liệu, thông tin từ usb flash drive chuyển vào bộ nhớ đệm chờ Bộ xử lý trung tâm giải quyết.

- Khối PHY: Truyền và nhận tín hiệu vi sai D+, D-. Tại khối này có nhiệm vụ biến đổi tín hiệu digital thành tín hiệu analog là hai tín hiệu vi sai D+, D- và ngược lại, nhận tín hiệu vi sai D+, D- biến đổi sang tín hiệu digital. Hai tín hiệu D+ và D- sẽ được mã hóa và giải mã theo chuẩn NRTZ (Non Return To Zero).

- Khối SIE ( Serial Interface Engine ): Đây có thể coi là nhân của bộ giao tiếp usb ( USB Core). Tại đây, các giao thức của usb được thực thi ( Token, Data, PID, Address). SIE thực hiện chuyển đổi giữa tín hiệu song song thành tín hiệu tuần tự và ngược lại. Nếu nó ở trạng thái nhận dữ liệu, SIE sẽ giải mã tín hiệu nhận được thu lấy dữ liệu và thông tin từ ổ usb. Sau đó truyền sang bộ nhớ chờ Bộ xử lý trung tâm xử lý. Nếu nó ở trạng thái truyền dữ liệu. Sau khi nhận được dữ liệu từ Khối xử lý trung tâm, SIE sẽ tiến hành mã hóa dữ liệu với các giao thức mặc định rồi sẽ đưa sang usb drive.

- Khối Memory Interface: Dữ liệu vào ra từ cổng usb sẽ được lưu trữ tạm thời tại đây. Đồng thời nó đảm nhiệm truyền và nhận tín hiệu từ memory với một chuẩn giao tiếp bất kì ( tùy kĩ sư) có thể là kiểu giao tiếp tuần tự hoặc kiểu giao tiếp song song.

f,Khối điều khiển:

- Nhằm thực hiện các lệnh trực tiếp của người dùng. Điều này xảy ra bởi dung lượng của ổ usb quá lớn so với một chiếc đĩa mềm. Khi ta thực hiện tạo một đĩa mềm ảo, dung lượng tối đa của đĩa mềm đó là 1.44 mb. Với một usb có dung lượng 2Gb, ta có thể có tới hơn 1000 chiếc đĩa mềm ảo. Khi ta muốn thay một chiếc đĩa mềm khác, thì cần phải đổi sang một chiếc khác. Vì hệ thống của ta tạo đĩa ảo nền cần có một nút bấm số nhằm lựa chọn một chiếc đĩa mềm ảo khác.

g,Khối hiển thị:

- Sử dụng một usb với một dung lượng lớn hơn nhiều để mô phỏng dung lượng đĩa mềm, tất nhiên là sẽ có số lượng lơn đĩa mềm được mô phỏng. Vì vậy mà ta cần khối điều khiển để chuyển đổi giữa các đĩa mềm. Và ta cũng cần một khối hiển thị nhằm thông báo cho ta biết được là ta đang dùng đến đĩa mềm thứ bao nhiêu.

- Vấn đề số lượng đĩa mềm quá lớn thì việc nhớ là đĩa nào lưu cái gì thì màn hình có thể hiển thị nội dung file info.txt được ghi trên máy tính để có thể chọn được đúng đĩa mình cần

D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 31 h,Cơ chế hoạt động:

- Khi cắm thiết bị chuyển đổi vào cổng FDD(FDC) và cắm USB vào thiết bị, thiết bị sẽ đọc luôn file info.txt (adsbygoogle = window.adsbygoogle || []).push({});

- Trong bảng điều khiển, người dùng có thể đọc tiếp nội dung file text hoặc chuyển ra bảng điều khiển để lựa chọn file làm đĩa mềm.

- Khi người chọn ấn chọn một file đĩa mềm, bộ xử lý trung tâm sẽ liên kết đến file đó và nạp vào giống như việc cắm đĩa mềm vào ổ đĩa mềm vậy.

- Khối xử lý trung tâm sẽ làm nhiệm vụ chuyển đổi tín hiệu FDC thành tín hiệu USB để đọc/ghi vào file đang được lựa chọn.

- Việc Eject đĩa ảo có thể thực hiện qua cổng FDC

D08DTMT Học viện Công Nghệ Bưu Chính Viễn Thông Page 32

Danh sách các tài liệu tham khảo:

Phần thực tập cơ sở:

Tài liệu: “Biên dịch nhân Linux” của tác giả Hoàng Ngọc Diêu

Website:http://forum.ubuntu-vn.org Website:http://www.en.wikipedia.org Website:www.linuxforums.org Website:www.arm.linux.org.uk Phần thực ập chuyên sâu: Website:http://www.en.wikipedia.org Website:http://tailieu.vn Website:http://www.dientuvietnam.net

Một phần của tài liệu Báo cáo thực tập tốt nghiệp: quá trình biên dịch, xây dựng chương trình khởi động trên nền linux chạy cho kit mini 2440 (Trang 29 - 36)