คำถามติดแท็ก linux-device-driver

5
มี "โปรโตคอลการสื่อสาร USB" จริงๆหรือไม่?
ตามWikipedia , USB: กำหนดสายเคเบิลตัวเชื่อมต่อและโปรโตคอลการสื่อสารที่ใช้ในบัสสำหรับการเชื่อมต่อการสื่อสารและแหล่งจ่ายไฟระหว่างคอมพิวเตอร์และอุปกรณ์อิเล็กทรอนิกส์ แต่มี " โปรโตคอลการสื่อสาร USB" จริงๆหรือ? ความเข้าใจของฉันคือ: คุณเชื่อมต่ออุปกรณ์ USB เข้ากับเครื่อง (เช่น Ubuntu หรือ Linux ทุกชนิด) ลินุกซ์พบไดรเวอร์อุปกรณ์สำหรับอุปกรณ์นั้น (อย่างใด - โบนัสถ้าคุณรู้!) และโหลด อุปกรณ์ได้รับการเชื่อมต่อภายใต้ /dev/theDevice ขณะนี้แอปพื้นที่ผู้ใช้สามารถอ่าน / เขียน/dev/theDeviceและไดรเวอร์จัดการ IO ระดับต่ำไปยังอุปกรณ์ / ฮาร์ดแวร์พื้นฐาน สำหรับฉันไม่มีที่ไหนในโฟลว์นี้ที่มี "โปรโตคอลการสื่อสาร USB" ปรากฏขึ้น หากความเข้าใจของฉันถูกต้อง USB เป็นเพียงการเชื่อมต่อสายเคเบิลและไฟฟ้าระหว่างพีซีและอุปกรณ์ ฉันผิดที่นี่ USB ใช้โพรโทคอลระดับต่ำบางชนิดจริงหรือไม่ที่เน้นการโฟลว์ด้านบน? ถ้าเป็นเช่นนั้นมันคืออะไรและมันทำงานอย่างไรในมุมมอง 30,000 ฟุต?

2
การสื่อสารแบบอนุกรม vs ไดรเวอร์อุปกรณ์
ของฉัน ความเข้าใจ คือว่า การสื่อสารแบบอนุกรม สำหรับการสื่อสารโดยตรงระหว่างซีพียูกับซีพียูหรือไมโครคอนโทรลเลอร์กับไมโครคอนโทรลเลอร์ ของฉัน ความเข้าใจ คือ ไดรเวอร์อุปกรณ์ สำหรับการสื่อสารระหว่างอุปกรณ์กับซีพียูหรืออุปกรณ์ต่อไมโครคอนโทรลเลอร์ โดยพื้นฐานแล้วมันจะบอก CPU ถึงวิธีการอ่าน / เขียนข้อมูลไปยังพินที่แน่นอนเพื่อการสื่อสารกับอุปกรณ์ดิบอย่างถูกต้อง ฉันจะแก้ไขที่นี่หรือแก้ไขฐาน? หากสิ่งใดก็ตามที่ฉันได้กล่าวไปแล้วไม่เป็นความจริงหรือเข้าใจผิดโปรดชี้แจง / แก้ไขฉัน! โดยทั่วไปฉันกำลังมองหาสารสีน้ำเงินที่จะใช้เพื่อช่วยในการตัดสินใจเมื่อฉันต้องการใช้พูด SPI หรือ I2C หรือ UART (อนุกรม comm) หรือเพียงแค่ใช้ไดรเวอร์ ขอบคุณล่วงหน้า.

1
วิธีตรวจหาโมเด็ม cdma ที่เชื่อมต่อกับ USB ใน linux
ฉันกำลังเขียนโปรแกรมควบคุมอุปกรณ์และฉันใหม่อย่างสมบูรณ์กับแนวคิดนี้ ฟังก์ชั่นไดรเวอร์ของฉันคือเมื่อฉันเชื่อมต่อโมเด็มกับ usb ไดรเวอร์ของฉันควรตรวจสอบโมเด็มที่เชื่อมต่อและแสดงความแรงของสัญญาณ ฉันจะทำเช่นนั้นโดยใช้คำสั่ง AT ได้อย่างไร โมเด็มคือโมเด็ม CDMA ช่วยฉันด้วย

1
udev - เปลี่ยนกิจกรรมจาก udev_device_get_action
ฉันกำลังตรวจสอบเหตุการณ์ของอุปกรณ์ทั้งหมดที่เชื่อมต่อกับโฮสต์ ลินุกซ์มีภูต udev ซึ่งฟังทุกเหตุการณ์เฉพาะอุปกรณ์เช่นออนไลน์ออฟไลน์เพิ่มลบและการเปลี่ยนแปลง ฉันใช้ฟังก์ชั่นที่จัดทำโดย linux udev_device_get_actionซึ่งใช้เพื่อรับเหตุการณ์ / การกระทำบนอุปกรณ์นั้น ในเครื่องของฉันฉันได้รับเหตุการณ์การเปลี่ยนแปลงที่ส่งคืนจากฟังก์ชันนี้อย่างต่อเนื่องในตัวแปรของรหัสของฉัน [มันจะส่งกลับตัวชี้ตัวละคร] ฉันตรวจสอบโค้ด linux สำหรับฟังก์ชั่นudev_device_get_actionมันแค่คืนค่าการดำเนินการจากโครงสร้างอุปกรณ์ udev UDEV_EXPORT const char *udev_device_get_action(struct udev_device *udev_device) { if (udev_device == NULL) return NULL; return udev_device->action; } ดังนั้นฉันจะรู้ได้อย่างไรว่าเหตุการณ์การเปลี่ยนแปลงเหล่านั้นมาจากไหน?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.